Skip to content

Commit 093d07b

Browse files
committed
Define IMechanism interface.
1 parent a7c07c3 commit 093d07b

File tree

2 files changed

+44
-27
lines changed

2 files changed

+44
-27
lines changed

Assets/MGS-CommonCode/Machinery/Mechanism.cs

+43-26
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
* Version : 0.1.0
99
* Date : 4/17/2018
1010
* Description : Initial development version.
11+
*
12+
* Author : Mogoson
13+
* Version : 0.1.0
14+
* Date : 5/24/2018
15+
* Description : Define mechanism interface.
1116
*************************************************************************/
1217

1318
using System;
@@ -16,41 +21,21 @@
1621
namespace Mogoson.Machinery
1722
{
1823
/// <summary>
19-
/// Mechanism unit.
24+
/// Mechanism interface.
2025
/// </summary>
21-
[Serializable]
22-
public struct MechanismUnit
26+
public interface IMechanism
2327
{
24-
#region Field and Property
25-
/// <summary>
26-
/// Mechanism to drive.
27-
/// </summary>
28-
public Mechanism mechanism;
29-
3028
/// <summary>
31-
/// Coefficient of velocity.
32-
/// </summary>
33-
public float coefficient;
34-
#endregion
35-
36-
#region Public Method
37-
/// <summary>
38-
/// Constructor.
29+
/// Drive mechanism.
3930
/// </summary>
40-
/// <param name="mechanism">Mechanism to drive.</param>
41-
/// <param name="coefficient">Coefficient of velocity.</param>
42-
public MechanismUnit(Mechanism mechanism, float coefficient)
43-
{
44-
this.mechanism = mechanism;
45-
this.coefficient = coefficient;
46-
}
47-
#endregion
31+
/// <param name="velocity">Drive velocity.</param>
32+
void Drive(float velocity);
4833
}
4934

5035
/// <summary>
5136
/// Base mechanism.
5237
/// </summary>
53-
public abstract class Mechanism : MonoBehaviour
38+
public abstract class Mechanism : MonoBehaviour, IMechanism
5439
{
5540
#region Protected Method
5641
protected virtual void Awake()
@@ -72,4 +57,36 @@ public virtual void Initialize() { }
7257
public abstract void Drive(float velocity);
7358
#endregion
7459
}
60+
61+
/// <summary>
62+
/// Mechanism unit.
63+
/// </summary>
64+
[Serializable]
65+
public struct MechanismUnit
66+
{
67+
#region Field and Property
68+
/// <summary>
69+
/// Mechanism to drive.
70+
/// </summary>
71+
public Mechanism mechanism;
72+
73+
/// <summary>
74+
/// Coefficient of velocity.
75+
/// </summary>
76+
public float coefficient;
77+
#endregion
78+
79+
#region Public Method
80+
/// <summary>
81+
/// Constructor.
82+
/// </summary>
83+
/// <param name="mechanism">Mechanism to drive.</param>
84+
/// <param name="coefficient">Coefficient of velocity.</param>
85+
public MechanismUnit(Mechanism mechanism, float coefficient)
86+
{
87+
this.mechanism = mechanism;
88+
this.coefficient = coefficient;
89+
}
90+
#endregion
91+
}
7592
}

Assets/MGS-CommonCode/Machinery/Transmission.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class Transmission : Mechanism
2323
{
2424
#region Field and Property
2525
/// <summary>
26-
/// Mechanism drive by this Transmission.
26+
/// Mechanism drive by this transmission.
2727
/// </summary>
2828
public List<MechanismUnit> mechanismUnits = new List<MechanismUnit>();
2929
#endregion

0 commit comments

Comments
 (0)