57 lines
1.6 KiB
Go
57 lines
1.6 KiB
Go
//go:build !js || !wasm
|
|
// +build !js !wasm
|
|
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"code.rocketnine.space/tslocum/monovania/component"
|
|
"code.rocketnine.space/tslocum/monovania/engine"
|
|
"code.rocketnine.space/tslocum/monovania/world"
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
)
|
|
|
|
func parseFlags() {
|
|
var (
|
|
fullscreen bool
|
|
spawn string
|
|
noSplash bool
|
|
)
|
|
flag.BoolVar(&fullscreen, "fullscreen", false, "run in fullscreen mode")
|
|
flag.StringVar(&spawn, "spawn", "", "spawn X,Y position")
|
|
flag.BoolVar(&world.World.CanDoubleJump, "doublejump", false, "start with double jump ability")
|
|
flag.BoolVar(&world.World.CanDash, "dash", false, "start with dash ability")
|
|
flag.BoolVar(&world.World.CanLevitate, "levitate", false, "start with levitate ability")
|
|
flag.BoolVar(&noSplash, "no-splash", false, "skip splash screen")
|
|
flag.IntVar(&world.World.Debug, "debug", 0, "print debug information")
|
|
flag.Parse()
|
|
|
|
if fullscreen {
|
|
ebiten.SetFullscreen(true)
|
|
}
|
|
|
|
if spawn != "" {
|
|
spawnSplit := strings.Split(spawn, ",")
|
|
if len(spawnSplit) == 2 {
|
|
spawnX, err := strconv.Atoi(spawnSplit[0])
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
spawnY, err := strconv.Atoi(spawnSplit[1])
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
world.World.SpawnX, world.World.SpawnY = float64(spawnX), float64(spawnY)
|
|
position := engine.Engine.Component(world.World.Player, component.PositionComponentID).(*component.PositionComponent)
|
|
position.X, position.Y = world.World.SpawnX, world.World.SpawnY
|
|
}
|
|
}
|
|
|
|
if noSplash {
|
|
world.World.GameStarted = true
|
|
world.World.MessageVisible = false
|
|
}
|
|
}
|