aboutsummaryrefslogtreecommitdiff
path: root/input.go
blob: 5b9be328415c96c4ff059a886411824ea5b1fed4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

package main

import (
	"age_of_empires/physics"

	"github.com/hajimehoshi/ebiten/v2"
	"github.com/hajimehoshi/ebiten/v2/inpututil"
)

type Input struct {
	Cursor       physics.Point
	ScreenCursor physics.Point

	EscapePressed bool
	PatrolPressed bool

	LeftMouseDown bool
	LeftMouseUp   bool
	RightMouseUp  bool

	SpawnPressed bool
}

func CollectInput(camera *Camera) Input {
	sx, sy := ebiten.CursorPosition()
	return Input{
		Cursor:        camera.ScreenToWorld(sx, sy),
		ScreenCursor:  physics.Point{X: sx, Y: sy},
		EscapePressed: inpututil.IsKeyJustReleased(ebiten.KeyEscape),
		PatrolPressed: inpututil.IsKeyJustReleased(KeyPatrolRequest),
		LeftMouseDown: inpututil.IsMouseButtonJustPressed(ebiten.MouseButtonLeft),
		LeftMouseUp:   inpututil.IsMouseButtonJustReleased(ebiten.MouseButtonLeft),
		RightMouseUp:  inpututil.IsMouseButtonJustReleased(ebiten.MouseButtonRight),
		SpawnPressed:  inpututil.IsKeyJustReleased(KeySpawnRequest),
	}
}