EntityFactory.cs 1.6 KB
Newer Older
T
tanghai 已提交
1
namespace Model
2
{
3
	public static class EntityFactory
4 5 6
	{
		public static T Create<T>() where T : Disposer
		{
T
tanghai 已提交
7
			T disposer = ObjectPool.Instance.Fetch<T>();
8 9 10 11 12 13
			ObjectEvents.Instance.Awake(disposer);
			return disposer;
		}

		public static T Create<T, A>(A a) where T : Disposer
		{
T
tanghai 已提交
14
			T disposer = ObjectPool.Instance.Fetch<T>();
15 16 17 18 19 20
			ObjectEvents.Instance.Awake(disposer, a);
			return disposer;
		}

		public static T Create<T, A, B>(A a, B b) where T : Disposer
		{
T
tanghai 已提交
21
			T disposer = ObjectPool.Instance.Fetch<T>();
22 23 24 25 26 27
			ObjectEvents.Instance.Awake(disposer, a, b);
			return disposer;
		}

		public static T Create<T, A, B, C>(A a, B b, C c) where T : Disposer
		{
T
tanghai 已提交
28
			T disposer = ObjectPool.Instance.Fetch<T>();
29 30 31 32 33 34
			ObjectEvents.Instance.Awake(disposer, a, b, c);
			return disposer;
		}

		public static T CreateWithId<T>(long id) where T : Disposer
		{
T
tanghai 已提交
35
			T disposer = ObjectPool.Instance.Fetch<T>();
36
			disposer.Id = id;
37 38 39 40 41 42
			ObjectEvents.Instance.Awake(disposer);
			return disposer;
		}

		public static T CreateWithId<T, A>(long id, A a) where T : Disposer
		{
T
tanghai 已提交
43
			T disposer = ObjectPool.Instance.Fetch<T>();
44
			disposer.Id = id;
45 46 47 48 49 50
			ObjectEvents.Instance.Awake(disposer, a);
			return disposer;
		}

		public static T CreateWithId<T, A, B>(long id, A a, B b) where T : Disposer
		{
T
tanghai 已提交
51
			T disposer = ObjectPool.Instance.Fetch<T>();
52
			disposer.Id = id;
53 54 55 56 57 58
			ObjectEvents.Instance.Awake(disposer, a, b);
			return disposer;
		}

		public static T CreateWithId<T, A, B, C>(long id, A a, B b, C c) where T : Disposer
		{
T
tanghai 已提交
59
			T disposer = ObjectPool.Instance.Fetch<T>();
60
			disposer.Id = id;
61 62 63 64 65
			ObjectEvents.Instance.Awake(disposer, a, b, c);
			return disposer;
		}
	}
}