public Gamestate(PlayerUnit playerUnit, Unit unit, Scenery scenery, EventsState events, InputState input, PhysicsState physics, VideoState video, AudioState audio, TimeState time) { Assert.Ref(playerUnit, unit, scenery, events, input, physics, video, audio, time); PlayerUnit = playerUnit; Scenery = scenery; Unit = unit; Events = events; Input = input; Physics = physics; Video = video; Audio = audio; Time = time; }
public Gamestate Build(Gamestate old) { EventsState events = Events.Build(); // we quit immediately on quit request, so don't bother building if we got one if (!events.IsQuitRequested) { PlayerUnit pUnit = old?.PlayerUnit.Update(old, this) ?? new PlayerUnit(this); Unit unit = old?.Unit.Update(old, this) ?? new Unit(this); Scenery scenery = old?.Scenery.Update(old, this) ?? new Scenery(this); InputState input = Input.Build(); PhysicsState physics = Physics.Build(old?.Time.Delta ?? 0); VideoState video = Video.Build(old?.Video); AudioState audio = Audio.Build(old?.Audio); TimeState time = Time.Build(old?.Time); return(new Gamestate(pUnit, unit, scenery, events, input, physics, video, audio, time)); } return(new Gamestate(old.PlayerUnit, old.Unit, old.Scenery, events, old.Input, old.Physics, old.Video, old.Audio, old.Time)); }