Code Layout Refactor

* All private Doodle source code into the pkg/ folder.
* Potentially public code into the lib/ folder.
* Centralize the logger into a subpackage.
This commit is contained in:
Noah 2019-04-09 17:35:44 -07:00
parent d0ff137b04
commit 2b42a072a0
89 changed files with 189 additions and 196 deletions

View File

@ -1,6 +1,6 @@
SHELL := /bin/bash SHELL := /bin/bash
VERSION=$(shell grep -e 'Version =' doodle.go | head -n 1 | cut -d '"' -f 2) VERSION=$(shell grep -e 'Version =' pkg/doodle.go | head -n 1 | cut -d '"' -f 2)
BUILD=$(shell git describe --always) BUILD=$(shell git describe --always)
CURDIR=$(shell curdir) CURDIR=$(shell curdir)

View File

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

View File

@ -1,14 +0,0 @@
package commands
import "github.com/kirsle/golog"
var log *golog.Logger
func init() {
log = golog.GetLogger("doodad")
log.Configure(&golog.Config{
Level: golog.InfoLevel,
Theme: golog.DarkTheme,
Colors: golog.ExtendedColor,
})
}

View File

@ -6,8 +6,8 @@ import (
"os" "os"
"sort" "sort"
"git.kirsle.net/apps/doodle"
"git.kirsle.net/apps/doodle/cmd/doodad/commands" "git.kirsle.net/apps/doodle/cmd/doodad/commands"
doodle "git.kirsle.net/apps/doodle/pkg"
"github.com/urfave/cli" "github.com/urfave/cli"
) )

View File

@ -4,11 +4,11 @@ import (
"flag" "flag"
"runtime" "runtime"
"git.kirsle.net/apps/doodle"
"git.kirsle.net/apps/doodle/balance"
"git.kirsle.net/apps/doodle/render/sdl"
_ "image/png" _ "image/png"
"git.kirsle.net/apps/doodle/lib/render/sdl"
doodle "git.kirsle.net/apps/doodle/pkg"
"git.kirsle.net/apps/doodle/pkg/balance"
) )
// Build number is the git commit hash. // Build number is the git commit hash.

View File

@ -1,9 +0,0 @@
package level
import "github.com/kirsle/golog"
var log *golog.Logger
func init() {
log = golog.GetLogger("doodle")
}

View File

@ -3,7 +3,7 @@ package draw
import ( import (
"math" "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. // Line is a generator that returns the X,Y coordinates to draw a line.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,6 @@
package sdl package sdl
import ( import "git.kirsle.net/apps/doodle/pkg/level"
"git.kirsle.net/apps/doodle/level"
)
// Frames to cache for FPS calculation. // Frames to cache for FPS calculation.
const ( const (

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
package ui 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. // Checkbox combines a CheckButton with a widget like a Label.
type Checkbox struct { type Checkbox struct {

View File

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

View File

@ -1,6 +1,8 @@
package ui package ui
import "git.kirsle.net/apps/doodle/render" import (
"git.kirsle.net/apps/doodle/lib/render"
)
// Pack provides configuration fields for Frame.Pack(). // Pack provides configuration fields for Frame.Pack().
type Pack struct { type Pack struct {
@ -223,7 +225,7 @@ func (w *Frame) computePacked(e render.Engine) {
moved = true moved = true
} }
} else { } else {
log.Error("unsupported pack.Anchor") panic("unsupported pack.Anchor")
} }
if resized && size != resize { if resized && size != resize {

View File

@ -1,6 +1,6 @@
package ui 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 // AbsolutePosition computes a widget's absolute X,Y position on the
// window on screen by crawling its parent widget tree. // window on screen by crawling its parent widget tree.

View File

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

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"strings" "strings"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/lib/render"
) )
// DefaultFont is the default font settings used for a Label. // DefaultFont is the default font settings used for a Label.
@ -71,7 +71,7 @@ func (w *Label) Compute(e render.Engine) {
text.Text = line // only this line at this time. text.Text = line // only this line at this time.
rect, err := e.ComputeTextRect(text) rect, err := e.ComputeTextRect(text)
if err != nil { if err != nil {
log.Error("%s: failed to compute text rect: %s", w, err) panic(fmt.Sprintf("%s: failed to compute text rect: %s", w, err)) // TODO return an error
return return
} }

View File

@ -4,8 +4,8 @@ import (
"errors" "errors"
"sync" "sync"
"git.kirsle.net/apps/doodle/events" "git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/lib/render"
) )
// Event is a named event that the supervisor will send. // Event is a named event that the supervisor will send.
@ -95,7 +95,6 @@ func (s *Supervisor) Loop(ev *events.State) error {
if s.dd.IsDragging() { if s.dd.IsDragging() {
if !ev.Button1.Now && !ev.Button2.Now { if !ev.Button1.Now && !ev.Button2.Now {
// The mouse has been released. TODO: make mouse button important? // The mouse has been released. TODO: make mouse button important?
log.Info("Supervisor: STOP DRAGGING")
for _, child := range hovering { for _, child := range hovering {
child.widget.Event(Drop, XY) child.widget.Event(Drop, XY)
} }

View File

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

View File

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

View File

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

15
log.go
View File

@ -1,15 +0,0 @@
package doodle
import "github.com/kirsle/golog"
var log *golog.Logger
func init() {
log = golog.GetLogger("doodle")
log.Configure(&golog.Config{
Level: golog.DebugLevel,
Theme: golog.DarkTheme,
Colors: golog.ExtendedColor,
TimeFormat: "2006-01-02 15:04:05.000000",
})
}

View File

@ -5,7 +5,7 @@ import (
"strconv" "strconv"
"strings" "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 // Debug related variables that can toggle on or off certain features and

View File

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

View File

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

View File

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

View File

@ -7,6 +7,7 @@ import (
"regexp" "regexp"
"strings" "strings"
"git.kirsle.net/apps/doodle/pkg/log"
"git.kirsle.net/apps/doodle/pkg/userdir" "git.kirsle.net/apps/doodle/pkg/userdir"
) )

View File

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

View File

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

View File

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

View File

@ -1,8 +1,6 @@
package doodads package doodads
import ( import "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/render"
)
// PlayerID is the Doodad ID for the player character. // PlayerID is the Doodad ID for the player character.
const PlayerID = "PLAYER" const PlayerID = "PLAYER"

View File

@ -5,10 +5,11 @@ import (
"strings" "strings"
"time" "time"
"git.kirsle.net/apps/doodle/balance" "git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/enum" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/events" "git.kirsle.net/apps/doodle/pkg/balance"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/pkg/enum"
"git.kirsle.net/apps/doodle/pkg/log"
"github.com/kirsle/golog" "github.com/kirsle/golog"
) )
@ -58,7 +59,7 @@ func New(debug bool, engine render.Engine) *Doodle {
d.shell = NewShell(d) d.shell = NewShell(d)
if !debug { if !debug {
log.Config.Level = golog.InfoLevel log.Logger.Config.Level = golog.InfoLevel
} }
return d return d
@ -200,7 +201,7 @@ func (d *Doodle) EditDrawing(filename string) error {
switch ext { switch ext {
case "level": case "level":
case "map": case "map":
log.Info("is a LEvel type") log.Info("is a Level type")
scene.DrawingType = enum.LevelDrawing scene.DrawingType = enum.LevelDrawing
case "doodad": case "doodad":
scene.DrawingType = enum.DoodadDrawing scene.DrawingType = enum.DoodadDrawing

View File

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

View File

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

View File

@ -5,15 +5,16 @@ import (
"path/filepath" "path/filepath"
"strconv" "strconv"
"git.kirsle.net/apps/doodle/balance" "git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/doodads" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/enum" "git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/events" "git.kirsle.net/apps/doodle/pkg/balance"
"git.kirsle.net/apps/doodle/level" "git.kirsle.net/apps/doodle/pkg/doodads"
"git.kirsle.net/apps/doodle/pkg/enum"
"git.kirsle.net/apps/doodle/pkg/level"
"git.kirsle.net/apps/doodle/pkg/log"
"git.kirsle.net/apps/doodle/pkg/uix"
"git.kirsle.net/apps/doodle/pkg/userdir" "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"
) )
// Width of the panel frame. // Width of the panel frame.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,7 +5,7 @@ import (
"errors" "errors"
"fmt" "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 // MapAccessor implements a chunk accessor by using a map of points to their

View File

@ -4,8 +4,8 @@ import (
"fmt" "fmt"
"testing" "testing"
"git.kirsle.net/apps/doodle/level" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/pkg/level"
) )
// Test the high level Chunker. // Test the high level Chunker.

View File

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

View File

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

View File

@ -1,8 +1,6 @@
package level package level
import ( import "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/render"
)
// DefaultPalette returns a sensible default palette. // DefaultPalette returns a sensible default palette.
func DefaultPalette() *Palette { func DefaultPalette() *Palette {

View File

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

View File

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

36
pkg/log/log.go Normal file
View File

@ -0,0 +1,36 @@
package log
import "github.com/kirsle/golog"
// Logger is the public golog.Logger object.
var Logger *golog.Logger
func init() {
Logger = golog.GetLogger("doodle")
Logger.Configure(&golog.Config{
Level: golog.DebugLevel,
Theme: golog.DarkTheme,
Colors: golog.ExtendedColor,
TimeFormat: "2006-01-02 15:04:05.000000",
})
}
// Debug logger function.
func Debug(msg string, v ...interface{}) {
Logger.Debug(msg, v...)
}
// Info logger function.
func Info(msg string, v ...interface{}) {
Logger.Info(msg, v...)
}
// Warn logger function.
func Warn(msg string, v ...interface{}) {
Logger.Warn(msg, v...)
}
// Error logger function.
func Error(msg string, v ...interface{}) {
Logger.Error(msg, v...)
}

View File

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

View File

@ -3,12 +3,13 @@ package doodle
import ( import (
"fmt" "fmt"
"git.kirsle.net/apps/doodle/balance" "git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/doodads" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/events" "git.kirsle.net/apps/doodle/pkg/balance"
"git.kirsle.net/apps/doodle/level" "git.kirsle.net/apps/doodle/pkg/doodads"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/pkg/level"
"git.kirsle.net/apps/doodle/uix" "git.kirsle.net/apps/doodle/pkg/log"
"git.kirsle.net/apps/doodle/pkg/uix"
) )
// PlayScene manages the "Edit Level" game mode. // PlayScene manages the "Edit Level" game mode.

View File

@ -1,6 +1,9 @@
package doodle package doodle
import "git.kirsle.net/apps/doodle/events" import (
"git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/pkg/log"
)
// Scene is an abstraction for a game mode in Doodle. The app points to one // 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 // scene at a time and that scene has control over the main loop, and its own

View File

@ -5,10 +5,11 @@ import (
"fmt" "fmt"
"strings" "strings"
"git.kirsle.net/apps/doodle/balance" "git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/events" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/render" "git.kirsle.net/apps/doodle/lib/ui"
"git.kirsle.net/apps/doodle/ui" "git.kirsle.net/apps/doodle/pkg/balance"
"git.kirsle.net/apps/doodle/pkg/log"
"github.com/robertkrimen/otto" "github.com/robertkrimen/otto"
) )
@ -73,7 +74,7 @@ func NewShell(d *Doodle) Shell {
// Make the Doodle instance available to the shell. // Make the Doodle instance available to the shell.
bindings := map[string]interface{}{ bindings := map[string]interface{}{
"d": d, "d": d,
"log": log, "log": log.Logger,
"RGBA": render.RGBA, "RGBA": render.RGBA,
"Point": render.NewPoint, "Point": render.NewPoint,
"Rect": render.NewRect, "Rect": render.NewRect,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,14 +0,0 @@
package uix
import "github.com/kirsle/golog"
var log *golog.Logger
func init() {
log = golog.GetLogger("uix")
log.Configure(&golog.Config{
Level: golog.DebugLevel,
Theme: golog.DarkTheme,
Colors: golog.ExtendedColor,
})
}