Ejemplo n.º 1
0
 public virtual object State(DrawingContext ctx, GameObject obj)
 {
     return(new DrawItemState
     {
         Center = CalcLocation(obj)
         , Heading = CalcHeading(obj)
     });
 }
Ejemplo n.º 2
0
 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")
                ));
 }
Ejemplo n.º 3
0
        public virtual bool CanDrawing(DrawingContext ctx, GameObject obj)
        {
            if (!FixCenter && obj == null)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
        public virtual void DrawCache(DrawingContext ctx, object state)
        {
            DrawItemState drawItemState = state as DrawItemState;

            if (drawItemState == null)
            {
                return;
            }

            internalDrawingCache(ctx, drawItemState);
        }
Ejemplo n.º 5
0
        //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);
        }
Ejemplo n.º 6
0
 public virtual void internalDrawingCache(DrawingContext ctx, DrawItemState state)
 {
 }
Ejemplo n.º 7
0
 public virtual void Drawing(DrawingContext ctx, GameObject obj)
 {
 }