goonscape/types/types.go

64 lines
1.3 KiB
Go
Raw Permalink Normal View History

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
FloatingMessage *FloatingMessage
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
}
type FloatingMessage struct {
Content string
ExpireTime time.Time
ScreenPos rl.Vector2 // Store the screen position for 2D rendering
}
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"
ServerAddr = "boner.be:6969"
2025-01-13 11:10:48 +01:00
)