Reorganize the package layout

Move all Doodle source code into the src/ subpackage and move the
publicly shareable stuff into lib/, for example lib/ui and lib/render.

This cleans up the git root and helps make the Doodle UI library more
easily publishable as a separate open source project. Currently both
lib/ui and lib/render import one or two things from doodle/src that need
to be broken apart.
This commit is contained in:
Noah 2018-12-30 14:22:50 -08:00
parent b58976527a
commit a316bafb12
91 changed files with 149 additions and 137 deletions

View File

@ -14,7 +14,7 @@ import (
"git.kirsle.net/apps/doodle"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"github.com/urfave/cli"
"golang.org/x/image/bmp"
)

View File

@ -4,9 +4,9 @@ import (
"flag"
"runtime"
"git.kirsle.net/apps/doodle"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/render/sdl"
"git.kirsle.net/apps/doodle/lib/render/sdl"
"git.kirsle.net/apps/doodle/src"
"git.kirsle.net/apps/doodle/src/balance"
_ "image/png"
)

View File

@ -4,7 +4,7 @@ import (
"fmt"
"math"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/src/events"
)
// Engine is the interface for the rendering engine, keeping SDL-specific stuff

View File

@ -4,7 +4,7 @@ import (
"strconv"
"testing"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
func TestPointInside(t *testing.T) {

View File

@ -4,7 +4,7 @@ import (
"strconv"
"testing"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
func TestIntersection(t *testing.T) {

View File

@ -2,7 +2,7 @@
package sdl
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"github.com/veandco/go-sdl2/sdl"
)

View File

@ -3,7 +3,7 @@ package sdl
import (
"errors"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/src/events" // XXX: break it up
"github.com/veandco/go-sdl2/sdl"
)

View File

@ -4,8 +4,8 @@ package sdl
import (
"time"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/events"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
)

View File

@ -4,8 +4,8 @@ import (
"fmt"
"strings"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/events"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
)

View File

@ -3,7 +3,7 @@ package sdl
import (
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"github.com/veandco/go-sdl2/sdl"
)

View File

@ -1,7 +1,7 @@
package sdl
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"github.com/veandco/go-sdl2/sdl"
)

8
lib/ui/README.md Normal file
View File

@ -0,0 +1,8 @@
# Doodle UI
This is a UI toolkit designed for Doodle but made generally available.
## Ties to Break
lib/ui and lib/render both currently import doodle/src/events as their only
dependency on Doodle. This module should be moved to a better common location.

View File

@ -4,8 +4,8 @@ import (
"errors"
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui/theme"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui/theme"
)
// Button is a clickable button.

View File

@ -4,8 +4,8 @@ import (
"fmt"
"strconv"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui/theme"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui/theme"
)
// CheckButton implements a checkbox and radiobox widget. It's based on a

View File

@ -1,6 +1,6 @@
package ui
import "git.kirsle.net/apps/doodle/render"
import "git.kirsle.net/apps/doodle/lib/render"
// Checkbox combines a CheckButton with a widget like a Label.
type Checkbox struct {

View File

@ -3,7 +3,7 @@ package ui
import (
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Frame is a widget that contains other widgets.

View File

@ -1,6 +1,8 @@
package ui
import "git.kirsle.net/apps/doodle/render"
import (
"git.kirsle.net/apps/doodle/lib/render"
)
// Pack provides configuration fields for Frame.Pack().
type Pack struct {

View File

@ -1,6 +1,6 @@
package ui
import "git.kirsle.net/apps/doodle/render"
import "git.kirsle.net/apps/doodle/lib/render"
// AbsolutePosition computes a widget's absolute X,Y position on the
// window on screen by crawling its parent widget tree.

View File

@ -5,7 +5,7 @@ import (
"path/filepath"
"strings"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// ImageType for supported image formats.

View File

@ -4,7 +4,7 @@ import (
"fmt"
"strings"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// DefaultFont is the default font settings used for a Label.

View File

@ -4,8 +4,8 @@ import (
"errors"
"sync"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/events"
)
// Event is a named event that the supervisor will send.

View File

@ -1,6 +1,6 @@
package theme
import "git.kirsle.net/apps/doodle/render"
import "git.kirsle.net/apps/doodle/lib/render"
// Color schemes.
var (

View File

@ -1,8 +1,8 @@
package ui
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui/theme"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui/theme"
)
// BorderStyle options for widget.SetBorderStyle()

View File

@ -3,7 +3,7 @@ package ui
import (
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Window is a frame with a title bar.

View File

@ -8,7 +8,7 @@ import (
"os"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"golang.org/x/image/bmp"
)

View File

@ -7,7 +7,7 @@ import (
"path/filepath"
"strings"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Wallpaper is a repeatable background image to go behind levels.

View File

@ -5,7 +5,7 @@ import (
"strconv"
"strings"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Debug related variables that can toggle on or off certain features and

View File

@ -1,7 +1,7 @@
package balance
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Shell related variables.

View File

@ -1,8 +1,8 @@
package balance
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
)
// Theme and appearance variables.

View File

@ -5,7 +5,7 @@ import (
"fmt"
"strconv"
"git.kirsle.net/apps/doodle/enum"
"git.kirsle.net/apps/doodle/src/enum"
)
// Command is a parsed shell command.

View File

@ -1,8 +1,8 @@
package doodads
import (
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/level"
)
// Actor is a reusable run-time drawing component used in Doodle. Actors are an

View File

@ -1,8 +1,8 @@
package doodads
import (
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/level"
)
// Collide describes how a collision occurred.

View File

@ -1,9 +1,9 @@
package doodads
import (
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/level"
)
// Doodad is a reusable component for Levels that have scripts and graphics.

View File

@ -1,7 +1,7 @@
package doodads
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
uuid "github.com/satori/go.uuid"
)

View File

@ -1,7 +1,7 @@
// Package dummy implements a dummy doodads.Drawing.
package dummy
import "git.kirsle.net/apps/doodle/doodads"
import "git.kirsle.net/apps/doodle/src/doodads"
// Drawing is a dummy doodads.Drawing that has no data.
type Drawing struct {

View File

@ -1,7 +1,7 @@
// Package dummy implements a dummy doodads.Drawing.
package dummy
import "git.kirsle.net/apps/doodle/doodads"
import "git.kirsle.net/apps/doodle/src/doodads"
// NewPlayer creates a dummy player object.
func NewPlayer() *Drawing {

View File

@ -5,11 +5,11 @@ import (
"strings"
"time"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/enum"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/enum"
"git.kirsle.net/apps/doodle/src/events"
"github.com/kirsle/golog"
)

View File

@ -3,7 +3,7 @@ package draw
import (
"math"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Line is a generator that returns the X,Y coordinates to draw a line.

View File

@ -5,7 +5,7 @@ import (
"testing"
"git.kirsle.net/apps/doodle/draw"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
func TestLine(t *testing.T) {

View File

@ -7,12 +7,12 @@ import (
"os"
"strings"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/enum"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/enum"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
)
// EditorScene manages the "Edit Level" game mode.

View File

@ -1,6 +1,6 @@
package doodle
import "git.kirsle.net/apps/doodle/uix"
import "git.kirsle.net/apps/doodle/src/uix"
// TODO: build flags to not include this in production builds.
// This adds accessors for private variables from the dev console.

View File

@ -5,15 +5,15 @@ import (
"path/filepath"
"strconv"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/enum"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/uix"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/enum"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
"git.kirsle.net/apps/doodle/src/uix"
)
// Width of the panel frame.

View File

@ -7,12 +7,12 @@ package doodle
import (
"fmt"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/uix"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/uix"
)
// DraggableActor is a Doodad being dragged from the Doodad palette.

View File

@ -1,9 +1,9 @@
package doodle
import (
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/balance"
)
// setupPaletteFrame configures the Color Palette tab for Edit Mode.

View File

@ -4,10 +4,10 @@ import (
"fmt"
"strings"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/doodads"
)
// Frames to cache for FPS calculation.

View File

@ -3,10 +3,10 @@ package doodle
import (
"fmt"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/lib/ui"
)
// GUITestScene implements the main menu of Doodle.

View File

@ -1,7 +1,7 @@
package level
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
uuid "github.com/satori/go.uuid"
)

View File

@ -7,9 +7,9 @@ import (
"math"
"os"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/src/balance"
"github.com/satori/go.uuid"
"golang.org/x/image/bmp"
)

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// MapAccessor implements a chunk accessor by using a map of points to their

View File

@ -5,7 +5,7 @@ import (
"testing"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Test the high level Chunker.

View File

@ -5,7 +5,7 @@ import (
"fmt"
"math"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Chunker is the data structure that manages the chunks of a level, and

View File

@ -5,7 +5,7 @@ import (
"testing"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
func TestWorldSize(t *testing.T) {

View File

@ -1,7 +1,7 @@
package level
import (
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// DefaultPalette returns a sensible default palette.

View File

@ -3,7 +3,7 @@ package level
import (
"fmt"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
)
// Swatch holds details about a single value in the palette.

View File

@ -4,8 +4,8 @@ import (
"encoding/json"
"fmt"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/balance"
)
// Useful variables.

View File

View File

@ -1,10 +1,10 @@
package doodle
import (
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/lib/ui"
)
// MainScene implements the main menu of Doodle.

View File

@ -4,13 +4,13 @@ import (
"fmt"
"math"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/doodads/dummy"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/uix"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/doodads/dummy"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
"git.kirsle.net/apps/doodle/src/uix"
)
// PlayScene manages the "Edit Level" game mode.

View File

@ -1,6 +1,8 @@
package doodle
import "git.kirsle.net/apps/doodle/events"
import (
"git.kirsle.net/apps/doodle/src/events"
)
// Scene is an abstraction for a game mode in Doodle. The app points to one
// scene at a time and that scene has control over the main loop, and its own

View File

@ -5,10 +5,10 @@ import (
"fmt"
"strings"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/events"
"github.com/robertkrimen/otto"
)

View File

@ -1,9 +1,9 @@
package uix
import (
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/level"
uuid "github.com/satori/go.uuid"
)

View File

@ -5,13 +5,13 @@ import (
"os"
"strings"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/pkg/wallpaper"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
)
// Canvas is a custom ui.Widget that manages a single drawing.

View File

@ -3,10 +3,10 @@ package uix
import (
"fmt"
"git.kirsle.net/apps/doodle/doodads"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/pkg/userdir"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/src/doodads"
"git.kirsle.net/apps/doodle/src/level"
)
// InstallActors adds external Actors to the canvas to be superimposed on top

View File

@ -1,10 +1,10 @@
package uix
import (
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
)
// loopEditable handles the Loop() part for editable canvases.

View File

@ -4,9 +4,9 @@ import (
"fmt"
"strings"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/balance"
)
// Present the canvas.

View File

@ -4,11 +4,11 @@ import (
"errors"
"fmt"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/events"
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/ui"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/src/balance"
"git.kirsle.net/apps/doodle/src/events"
"git.kirsle.net/apps/doodle/src/level"
)
/*

View File

@ -1,9 +1,9 @@
package uix
import (
"git.kirsle.net/apps/doodle/level"
"git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/pkg/wallpaper"
"git.kirsle.net/apps/doodle/render"
"git.kirsle.net/apps/doodle/src/level"
)
// Wallpaper configures the wallpaper in a Canvas.