2025-01-13 11:10:48 +01:00
|
|
|
package types
|
2024-10-31 01:06:39 +01:00
|
|
|
|
2025-01-13 00:31:15 +01:00
|
|
|
import (
|
2025-01-13 11:10:48 +01:00
|
|
|
"sync"
|
|
|
|
"time"
|
|
|
|
|
2025-01-13 00:31:15 +01:00
|
|
|
pb "gitea.boner.be/bdnugget/goonserver/actions"
|
|
|
|
rl "github.com/gen2brain/raylib-go/raylib"
|
|
|
|
)
|
2024-10-31 01:06:39 +01:00
|
|
|
|
|
|
|
type Tile struct {
|
|
|
|
X, Y int
|
|
|
|
Height float32
|
|
|
|
Walkable bool
|
|
|
|
}
|
|
|
|
|
|
|
|
type Player struct {
|
2025-01-13 10:00:23 +01:00
|
|
|
sync.Mutex
|
2025-01-13 00:31:15 +01:00
|
|
|
PosActual rl.Vector3
|
|
|
|
PosTile Tile
|
|
|
|
TargetPath []Tile
|
|
|
|
ActionQueue []*pb.Action
|
|
|
|
Speed float32
|
|
|
|
Model rl.Model
|
|
|
|
Texture rl.Texture2D
|
|
|
|
ID int32
|
|
|
|
CurrentTick int64
|
|
|
|
LastUpdateTime time.Time
|
|
|
|
InterpolationProgress float32
|
2025-01-13 13:23:52 +01:00
|
|
|
UserData interface{} // Used to store reference to game
|
2024-10-31 01:06:39 +01:00
|
|
|
}
|
2025-01-13 11:10:48 +01:00
|
|
|
|
|
|
|
type ModelAsset struct {
|
|
|
|
Model rl.Model
|
|
|
|
Texture rl.Texture2D
|
|
|
|
}
|
|
|
|
|
2025-01-13 13:23:52 +01:00
|
|
|
type ChatMessage struct {
|
|
|
|
PlayerID int32
|
|
|
|
Content string
|
|
|
|
Time time.Time
|
|
|
|
}
|
|
|
|
|
2025-01-13 11:10:48 +01:00
|
|
|
const (
|
|
|
|
MapWidth = 50
|
|
|
|
MapHeight = 50
|
|
|
|
TileSize = 32
|
|
|
|
TileHeight = 2.0
|
|
|
|
|
|
|
|
// RuneScape-style tick rate (600ms)
|
|
|
|
ServerTickRate = 600 * time.Millisecond
|
|
|
|
ClientTickRate = 50 * time.Millisecond
|
|
|
|
MaxTickDesync = 5
|
|
|
|
ServerAddr = "localhost:6969"
|
|
|
|
)
|