summaryrefslogtreecommitdiff
path: root/engine/CoreObjects/OverlayScene.go
blob: a15fd17a9d7c91ad680492cf108bea28413d2ecf (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package coreobjects

import (
	"fmt"

	settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings"
	rl "github.com/gen2brain/raylib-go/raylib"
)

type OveralyScene struct {
	FPS FpsMeter
}

func (base *OveralyScene) Create(_ SceneManager) {
}

func (base *OveralyScene) Destroy() {
}

func (base *OveralyScene) Update() {
	base.FPS.Update()
	if rl.IsKeyPressed(rl.KeyF7) {
		settings.State.DrawColliders = !settings.State.DrawColliders
	}
}

func (base *OveralyScene) Draw() {
	var appendix = ""
	if settings.Current.Version.IsBeta {
		appendix = " b"
	}
	var version = fmt.Sprintf("%d.%d.%d%s", settings.Current.Version.MajorVersion, settings.Current.Version.MinorVersion, settings.Current.Version.Patch, appendix)	
	rl.DrawText(version, 2, int32(rl.GetScreenHeight()) - 20, 20, rl.Black)
	base.FPS.Draw()
}

// =============== FPS METER ===============

type FpsMeter struct {
	deltaTime float32
	Value float32
	FramesElapsed uint
}

func (base *FpsMeter) Create(SceneManager) {
}

func (base *FpsMeter) Destroy() {
}

func (base *FpsMeter) Update() {
	base.deltaTime += rl.GetFrameTime()
	base.FramesElapsed++
	if base.deltaTime >= 1 {
		base.Value = float32(base.FramesElapsed)
		base.deltaTime = 0
		base.FramesElapsed = 0
	}
}

func (base *FpsMeter) Draw() {
	rl.DrawText(fmt.Sprintf("%v FPS", base.Value), 0, 0, 20, rl.Green)
}