Exemple #1
0
 public void SetLayout(FieldLayout layout)
 {
     if (null != layout)
     {
         foreach (FieldObject fo in fieldObjects)
         {
             if (layout.HasEntry(fo.Tag))
             {
                 fo.Position = layout.GetEntryPosition(fo.Tag);
                 IsDirty     = true;
             }
         }
         Invalidate();
     }
 }
Exemple #2
0
        private void DrawLayoutIntoGraphics(Graphics g, FieldLayout layoutToDraw, FieldLayout nextLayoutData)
        {
            if (null == FieldType)
            {
                return;
            }
            g.SmoothingMode = SmoothingMode.AntiAlias;
            g.Transform     = fieldToDisplayTransform;

            FieldType.DrawMarkings(g);

            // Draw the movement lines that show the movement between the current position and
            // the next position in the sequence (these are drawn first so that they appear under
            // the players)
            if (nextLayoutData != null)
            {
                foreach (FieldObject fieldObject in fieldObjects)
                {
                    if (nextLayoutData.HasEntry(fieldObject.Tag))
                    {
                        if (null != layoutToDraw)
                        {
                            fieldObject.DrawMovementLineFrom(g, layoutToDraw.GetEntryPosition(fieldObject.Tag), nextLayoutData.GetEntryPosition(fieldObject.Tag));
                        }
                        else
                        {
                            fieldObject.DrawMovementLine(g, nextLayoutData.GetEntryPosition(fieldObject.Tag));
                        }
                    } // endif
                }
            }

            // Draw each of the field objects
            foreach (FieldObject fieldObject in fieldObjects)
            {
                if (null != layoutToDraw)
                {
                    fieldObject.DrawAt(g, layoutToDraw.GetEntryPosition(fieldObject.Tag));
                }
                else
                {
                    fieldObject.Draw(g);
                }
            }
        }