public void Update(float dtime) { MotionSimulation.Step(dtime); #if BETA_RELEASE ClientProfilers.NearestNeighbours.Start(); #endif inRangeAcc += dtime; if (inRangeAcc >= 0.4f) { if (Program.Settings.NearestNeighborsEnabled) { InRange.Update(); } inRangeAcc = 0; } #if BETA_RELEASE ClientProfilers.NearestNeighbours.Stop(); ClientProfilers.GameEntityUpdate.Start(); #endif foreach (var v in new List <Map.GameEntity>(objects)) { v.GameUpdate(dtime); } #if BETA_RELEASE ClientProfilers.GameEntityUpdate.Stop(); #endif UpdateActiveScripts(dtime); #if SEE_THROUGH if (lastSeeThroughs != null) { foreach (var v in new List <Map.GameEntity>(lastSeeThroughs)) { ((Graphics.Content.MetaModel)v.MainGraphic).Opacity = 1; /*((Graphics.Content.MetaModel)v.MainGraphic).Opacity += dtime; * if (((Graphics.Content.MetaModel)v.MainGraphic).Opacity >= 1) * { * lastSeeThroughs.Remove(v); * ((Graphics.Content.MetaModel)v.MainGraphic).HasAlpha = false; * }*/ } } var line = new Common.Bounding.Line(Game.Instance.Scene.Camera.Position, Game.Instance.Map.MainCharacter.Position); lastSeeThroughs = seeThroughables.Cull(line); foreach (var v in lastSeeThroughs) { ((Graphics.Content.MetaModel)v.MainGraphic).AlphaRef = 10; ((Graphics.Content.MetaModel)v.MainGraphic).Opacity = 0.3f; /*((Graphics.Content.MetaModel)v.MainGraphic).HasAlpha = true; * if(((Graphics.Content.MetaModel)v.MainGraphic).Opacity > 0.3f) * ((Graphics.Content.MetaModel)v.MainGraphic).Opacity -= dtime;*/ } #endif }
public static bool Intersect(Common.Bounding.Line a, BoundingMetaMesh b, out object intersection) { // not sure what this is supposed to return yet so I'll postpone it until it is needed intersection = null; Vector3 v = a.P1 - a.P0; Ray r = new Ray(a.P0, Vector3.Normalize(v)); object obj; bool hit = Intersect(r, b, out obj); if (hit) { return(((Common.RayIntersection)obj).Distance <= v.Length()); } return(false); }
public static bool Intersect(Common.Bounding.Line a, MetaBoundingBox b, out object intersection) { return(Common.Intersection.Intersect(a, b.GetBoundingBox(content).Value, out intersection)); }
public void Update(float dtime) { MotionSimulation.Step(dtime); #if BETA_RELEASE ClientProfilers.NearestNeighbours.Start(); #endif inRangeAcc += dtime; if (inRangeAcc >= 0.4f) { if (Program.Settings.NearestNeighborsEnabled) InRange.Update(); inRangeAcc = 0; } #if BETA_RELEASE ClientProfilers.NearestNeighbours.Stop(); ClientProfilers.GameEntityUpdate.Start(); #endif foreach (var v in new List<Map.GameEntity>(objects)) v.GameUpdate(dtime); #if BETA_RELEASE ClientProfilers.GameEntityUpdate.Stop(); #endif UpdateActiveScripts(dtime); #if SEE_THROUGH if(lastSeeThroughs != null) foreach (var v in new List<Map.GameEntity>(lastSeeThroughs)) { ((Graphics.Content.MetaModel)v.MainGraphic).Opacity = 1; /*((Graphics.Content.MetaModel)v.MainGraphic).Opacity += dtime; if (((Graphics.Content.MetaModel)v.MainGraphic).Opacity >= 1) { lastSeeThroughs.Remove(v); ((Graphics.Content.MetaModel)v.MainGraphic).HasAlpha = false; }*/ } var line = new Common.Bounding.Line(Game.Instance.Scene.Camera.Position, Game.Instance.Map.MainCharacter.Position); lastSeeThroughs = seeThroughables.Cull(line); foreach (var v in lastSeeThroughs) { ((Graphics.Content.MetaModel)v.MainGraphic).AlphaRef = 10; ((Graphics.Content.MetaModel)v.MainGraphic).Opacity = 0.3f; /*((Graphics.Content.MetaModel)v.MainGraphic).HasAlpha = true; if(((Graphics.Content.MetaModel)v.MainGraphic).Opacity > 0.3f) ((Graphics.Content.MetaModel)v.MainGraphic).Opacity -= dtime;*/ } #endif }