fix to make player stop on closed door
This commit is contained in:
parent
c7c3859a70
commit
c6f9557483
@ -84,6 +84,26 @@ func (system *PairSystem) Update() error {
|
||||
}
|
||||
}
|
||||
|
||||
doorquery := system.DoorSelector.Query(system.World)
|
||||
for doorquery.Next() {
|
||||
doorpos, _, _, door := doorquery.Get()
|
||||
|
||||
for _, player := range observer.GetPlayers() {
|
||||
if !system.World.Alive(player) {
|
||||
continue
|
||||
}
|
||||
|
||||
playerposition := (*Position)(system.World.Get(player, posID))
|
||||
playervelocity := (*Velocity)(system.World.Get(player, veloID))
|
||||
|
||||
ok, newpos := doorpos.Intersects(playerposition, playervelocity)
|
||||
if ok && !door.IsOpen {
|
||||
playervelocity.Change(Stop)
|
||||
playerposition.Set(newpos)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, toggle := range EntitiesToSwitch {
|
||||
_, _, _, door := system.DoorMapper.Get(toggle.Entity)
|
||||
door.Toggle()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user