source: 2014/24/EemeliK/Zombieland/Jypeli/GameObjects/Surfaces.cs @ 5974

Revision 5974, 2.5 KB checked in by empaheik, 4 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Collections;
6
7namespace Jypeli
8{
9    /// <summary>
10    /// Kentän reunat.
11    /// </summary>
12    public struct Surfaces : IEnumerable<Surface>
13    {
14        internal Surface l, r, t, b;
15
16        /// <summary>
17        /// Vasen reuna.
18        /// </summary>
19        public Surface Left
20        {
21            get { return l; }
22        }
23
24        /// <summary>
25        /// Oikea reuna.
26        /// </summary>
27        public Surface Right
28        {
29            get { return r; }
30        }
31
32        /// <summary>
33        /// Yläreuna.
34        /// </summary>
35        public Surface Top
36        {
37            get { return t; }
38        }
39
40        /// <summary>
41        /// Alareuna.
42        /// </summary>
43        public Surface Bottom
44        {
45            get { return b; }
46        }
47
48        /// <summary>
49        /// Enumeraattori pinnoille.
50        /// Mahdollistaa foreach-lauseen käytön.
51        /// </summary>
52        /// <returns></returns>
53        public IEnumerator<Surface> GetEnumerator()
54        {
55            if ( Left != null ) yield return Left;
56            if ( Right != null ) yield return Right;
57            if ( Top != null ) yield return Top;
58            if ( Bottom != null ) yield return Bottom;
59        }
60
61        /// <summary>
62        /// Enumeraattori pinnoille.
63        /// Mahdollistaa foreach-lauseen käytön.
64        /// </summary>
65        /// <returns></returns>
66        IEnumerator IEnumerable.GetEnumerator()
67        {
68            if ( Left != null ) yield return Left;
69            if ( Right != null ) yield return Right;
70            if ( Top != null ) yield return Top;
71            if ( Bottom != null ) yield return Bottom;
72        }
73
74        /// <summary>
75        /// Valikoiva enumeraattori pinnoille.
76        /// </summary>
77        /// <param name="directions">Mukaan laskettavien reunojen suunnat</param>
78        /// <returns></returns>
79        public IEnumerable<Surface> Get( params Direction[] directions )
80        {
81            if ( directions.Contains(Direction.Left) && Left != null ) yield return Left;
82            if ( directions.Contains(Direction.Right) && Right != null ) yield return Right;
83            if ( directions.Contains(Direction.Up) && Top != null ) yield return Top;
84            if ( directions.Contains(Direction.Down) && Bottom != null ) yield return Bottom;
85        }
86    }
87}
Note: See TracBrowser for help on using the repository browser.