Protobuf changes
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
pb "gitea.boner.be/bdnugget/goonserver/actions"
|
||||
rl "github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
@@ -61,3 +64,38 @@ func (player *Player) MoveTowards(target Tile, deltaTime float32) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) UpdatePosition(state *pb.PlayerState, tickRate time.Duration) {
|
||||
targetTile := Tile{X: int(state.X), Y: int(state.Y)}
|
||||
if p.PosTile != targetTile {
|
||||
p.PosTile = targetTile
|
||||
p.LastUpdateTime = time.Now()
|
||||
p.InterpolationProgress = 0
|
||||
p.TargetPath = []Tile{targetTile}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) ForceResync(state *pb.PlayerState) {
|
||||
p.PosTile = Tile{X: int(state.X), Y: int(state.Y)}
|
||||
p.PosActual = rl.Vector3{
|
||||
X: float32(state.X * TileSize),
|
||||
Y: float32(state.Y * TileHeight),
|
||||
Z: float32(state.Y * TileSize),
|
||||
}
|
||||
p.TargetPath = nil
|
||||
p.ActionQueue = nil
|
||||
p.InterpolationProgress = 1.0
|
||||
}
|
||||
|
||||
func NewPlayer(state *pb.PlayerState) *Player {
|
||||
return &Player{
|
||||
PosActual: rl.Vector3{
|
||||
X: float32(state.X * TileSize),
|
||||
Y: float32(state.Y * TileHeight),
|
||||
Z: float32(state.Y * TileSize),
|
||||
},
|
||||
PosTile: Tile{X: int(state.X), Y: int(state.Y)},
|
||||
Speed: 50.0,
|
||||
ID: state.PlayerId,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user