private void DoAction(CutsceneAction a) { switch (a.Type) { case ActionType.Wait: { var time = a.Param <int>("Time"); Script.Wait(time); break; } case ActionType.SetCamera: { var camName = a.Param <string>("Camera"); World.RenderingCamera = GetObject <Camera>(camName); break; } case ActionType.MoveCamera: { var camName = a.Param <string>("Camera"); var cam = GetObject <Camera>(camName); var pos = a.Param <Vector3>("Position"); var rot = a.Param <Vector3>("Rotation"); cam.Position = pos; cam.Rotation = rot; break; } case ActionType.MoveCameraRel: { var camName1 = a.Param <string>("Camera"); var cam = GetObject <Camera>(camName1); var ped = a.Param <Ped>("Ped"); var pos = a.Param <Vector3>("Position"); var rot = a.Param <Vector3>("Rotation"); cam.Position = ped.Position + pos; cam.Rotation = ped.Rotation + rot; break; } default: throw new ArgumentOutOfRangeException(); } }
public Cutscene AddAction(CutsceneAction action) { _actions.Add(action); return(this); }