// draws all gameobjects linearly public void DrawAll(Camera cam, Effect effect, GameTime gameTime, bool ifGenerateShadowMaps) { if (ifGenerateShadowMaps) { if (Params.Shadows) { if (DirectionalLights[0] != null && DirectionalLights[0].CastShadows) { DirectionalLights[0].GenerateShadowMap(); } if (PointLights.Count > 0 && PointLights[0].CastShadows) { PointLights[0].GenerateShadowMap(); } if (Params.SoftShadows && ifRenderShadows) { RenderGlobalBlurredShadows(); ifRenderShadows = false; } } } if (Params.UseGraph) { ObjectsQT.Draw(cam != null ? cam : this.Cam, effect, gameTime); } else { drawLasts.Clear(); foreach (GameObject obj in ObjectsDictionary.Values) { if (obj.DrawLast) { drawLasts.Add(obj); } else { obj.Draw(cam, effect, gameTime); } } int lCount = drawLasts.Count; for (int i = 0; i < lCount; ++i) { drawLasts[i].Draw(cam, effect, gameTime); } } if (ifGenerateShadowMaps && !ifRenderShadows) { ifRenderShadows = true; } }
public void AddObject(GameObject obj) { if (this.ObjectsDictionary.ContainsKey(obj.UniqueID)) { Debug.Log("That ID exists"); } this.ObjectsDictionary.Add(obj.UniqueID, obj); if (Params.UseGraph) { ObjectsQT.Add(obj); } }
public void UpdateAll(GameTime gameTime) { ObjectsQT.Update(); Params.Time = Params.Time.AddMilliseconds(Params.TimeMultiplier * gameTime.ElapsedGameTime.TotalMilliseconds); //[vansten] Added testing code for physics simulation AI.BehaviorTree.BehaviorTreeManager.Instance.Update(gameTime); foreach (GameObject obj in ObjectsDictionary.Values) { obj.Update(gameTime); } Cam.Update(gameTime); if (runtimeRemoved.Count > 0 || runtimeAdded.Count > 0) { SolveRuntimeAdditions(); } }
public bool DeleteObject(uint uniqueID) { GameObject temp; bool placek = ObjectsDictionary.TryGetValue(uniqueID, out temp); if (temp != null) { if (Params.UseGraph) { ObjectsQT.Remove(temp); } ObjectsDictionary.Remove(uniqueID); return(true); } else { return(false); } }