source: 2013/30/MiskaK/MW2(My Warfare 2)/Paranneltu Jypeli/GameObjects/GameObject/IGameObject.cs @ 4507

Revision 4507, 2.6 KB checked in by anlakane, 6 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.ComponentModel;
6using Jypeli.Controls;
7using Jypeli.GameObjects;
8
9namespace Jypeli
10{
11    /// <summary>
12    /// Yhteinen rajapinta kaikille peliolioille.
13    /// </summary>
14    public interface IGameObject : Tagged, Destroyable, Updatable
15    {
16        Layer Layer { get; }
17        IGameObject Parent { get; set; }
18        Brain Brain { get; set; }
19
20        bool IsVisible { get; set; }
21        bool IsAddedToGame { get; }
22
23        TimeSpan CreationTime { get; }
24        TimeSpan Lifetime { get; }
25        TimeSpan MaximumLifetime { get; set; }
26       
27        Vector Size { get; set; }
28        double Width { get; set; }
29        double Height { get; set; }
30
31        Vector Position { get; set; }
32        Angle Angle { get; set; }
33        double X { get; set; }
34        double Y { get; set; }
35        double Left { get; set; }
36        double Top { get; set; }
37        double Right { get; set; }
38        double Bottom { get; set; }
39
40        Vector AbsolutePosition { get; set; }
41        Angle AbsoluteAngle { get; set; }
42       
43        Animation Animation { get; set; }
44        Image Image { get; set; }
45        Color Color { get; set; }
46
47        Shape Shape { get; set; }
48        Vector TextureWrapSize { get; set; }
49        bool TextureFillsShape { get; set; }
50        bool RotateImage { get; set; }
51
52        event Action AddedToGame;
53        event Action Removed;
54
55        bool IsInside( Vector point );
56
57        void Add( GameObject childObject );
58        void Remove( GameObject childObject );
59
60        void Move( Vector movement );
61        void MoveTo( Vector location, double speed, Action doWhenArrived );
62        void StopMoveTo();
63    }
64
65    /// <summary>
66    /// Jypelin sisäiset metodit ja propertyt joihin käyttäjän ei tarvitse
67    /// päästä käsiksi kuuluvat tähän luokkaan. Kaikki oliot jotka toteuttavat
68    /// IGameObject-rajapinnan toteuttavat myös IGameObjectInternal-rajapinnan.
69    /// Ota tämä huomioon jos aiot tehdä oman olion joka toteuttaa suoraan
70    /// IGameObject(Internal)-rajapinnan.
71    /// <example>
72    /// void UpdateObject(IGameObject obj)
73    /// {
74    ///    ((IGameObjectInternal)obj).Update();
75    /// }
76    /// </example>
77    /// </summary>
78    public interface IGameObjectInternal : IGameObject
79    {
80        Layer Layer { set; }
81        List<Listener> AssociatedListeners { get; }
82
83        void Update( Time time );
84
85        bool IsAddedToGame { set; }
86
87        void OnAddedToGame();
88        void OnRemoved();
89    }
90}
Note: See TracBrowser for help on using the repository browser.