public virtual object State(DrawingContext ctx, GameObject obj) { return(new DrawItemState { Center = CalcLocation(obj) , Heading = CalcHeading(obj) }); }
public virtual string Key(DrawingContext ctx, GameObject obj) { return(string.Format( "{0}{1}{2}", cacheKey , (FixCenter ? Center : obj.Location.Convert()).ToShortXYZString() , (FixHeading ? Heading : obj.Heading).ToString("F4") )); }
public virtual bool CanDrawing(DrawingContext ctx, GameObject obj) { if (!FixCenter && obj == null) { return(false); } return(true); }
public virtual void DrawCache(DrawingContext ctx, object state) { DrawItemState drawItemState = state as DrawItemState; if (drawItemState == null) { return; } internalDrawingCache(ctx, drawItemState); }
//private void DrawCircleAttack(DrawingContext ctx, GameObject obj) //{ // ctx.DrawCircleWithPoint(obj.Location, obj.Heading, 11.0f, Color.FromArgb(100, Color.Red), Color.FromArgb(100, Color.Red)); //} //private void DrawSideAttack(DrawingContext ctx, GameObject obj) //{ // ctx.DrawSideAttackAgroLine(obj.Location, obj.Heading, 5.0f, 50.0f, Color.FromArgb(100, Color.Blue)); //} //private void DrawSliceAttack(DrawingContext ctx, GameObject obj) //{ // ctx.DrawAgroLine(obj.Location, obj.Heading + (float)Math.PI / 2, 5.0f, 100.0f, Color.FromArgb(100, Color.Yellow), Color.FromArgb(100, Color.Yellow)); //} private void Drawing(DrawingContext ctx) { if (QuestLogManager.InCutscene) { return; } //Gameobject list is threadstatic, always need to pulse otherwise new objects wont show up GameObjectManager.Update(); if (SelfDrawing != null) { SelfDrawing.Drawing(ctx, Core.Me); } if (TargetDrawing != null && Core.Me.CurrentTarget != null) { TargetDrawing.Drawing(ctx, Core.Me.CurrentTarget); } foreach (GameObject obj in GameObjectManager.GameObjects) { if (!obj.IsValid) { continue; } if (obj.IsMe) { continue; } if (skipObjects.Contains(obj.NpcId)) { continue; } if (NpcDrawing.ContainsKey(obj.NpcId)) { IDrawCommand d = NpcDrawing[obj.NpcId]; if (d != null) { d.Drawing(ctx, obj); } continue; } if (skipGameType.Contains(obj.Type)) { continue; } if (CustomObjectTypesDrawing.ContainsKey(obj.Type)) { IDrawCommand d = CustomObjectTypesDrawing[obj.Type]; if (d != null) { d.Drawing(ctx, obj); } continue; } var gameCharacter = obj as Character; if (gameCharacter != null && HostileDrawing != null) { if (gameCharacter.StatusFlags.HasFlag(ff14bot.Enums.StatusFlags.Hostile)) { HostileDrawing.Drawing(ctx, obj); continue; } } if (AllDrawing != null) { AllDrawing.Drawing(ctx, obj); } } foreach (GatherNode g in this.GatherNodes) { g.Drawing(ctx, null); } customPoints.Drawing(ctx, null); cacheDrawManager.Draw(ctx); }
public virtual void internalDrawingCache(DrawingContext ctx, DrawItemState state) { }
public virtual void Drawing(DrawingContext ctx, GameObject obj) { }