Skip to content

Commit 3115f31

Browse files
committed
Reactors
1 parent bad2307 commit 3115f31

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

Pool.cs

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
using Sirenix.OdinInspector;
22
using System.Collections.Generic;
3-
using ToolBox.Modules;
3+
using ToolBox.Reactors;
44
using UnityEngine;
55

66
namespace ToolBox.Pools
77
{
8+
[System.Serializable]
89
public class Pool
910
{
1011
[SerializeField, AssetsOnly, ValueDropdown(nameof(GetPoolables))] private Poolable prefab = null;
1112
[SerializeField] private int startCount = 0;
1213
[SerializeField, SceneObjectsOnly] private Transform holder = null;
13-
[SerializeField] private ModulesContainer<GameObject> objectInitializator = null;
14+
[SerializeField] private GameObjectReactor objectInitializator = null;
1415

1516
private int currentCount = 0;
1617
private Queue<Poolable> entities = null;
1718

18-
public Pool(Poolable prefab, int startCount, Transform holder, ModulesContainer<GameObject> objectInitializator)
19+
public Pool(Poolable prefab, int startCount, Transform holder, GameObjectReactor objectInitializator)
1920
{
2021
this.prefab = prefab;
2122
this.startCount = startCount;
@@ -32,12 +33,9 @@ public void Fill()
3233
currentCount = startCount;
3334

3435
Poolable original = Object.Instantiate(prefab, holder);
35-
36+
3637
if (objectInitializator != null)
37-
{
38-
objectInitializator.Initialize();
39-
objectInitializator.Dispatch(original.gameObject);
40-
}
38+
objectInitializator.SendReaction(original.gameObject);
4139

4240
AddToPool(original);
4341

Poolable.cs

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
using Sirenix.OdinInspector;
2-
using Sirenix.Serialization;
3-
using ToolBox.Modules;
1+
using ToolBox.Reactors;
42
using UnityEngine;
53

64
namespace ToolBox.Pools
75
{
86
[DisallowMultipleComponent]
9-
public class Poolable : SerializedMonoBehaviour, IModule
7+
public class Poolable : MonoBehaviour, IReactor
108
{
119
[SerializeField] private Component component = null;
12-
[SerializeField] private ModulesContainer onBackToPool = default;
13-
[SerializeField] private ModulesContainer onBackFromPool = default;
10+
[SerializeField] private Reactor onBackToPool = default;
11+
[SerializeField] private Reactor onBackFromPool = default;
1412

1513
public Pool Pool { get; private set; } = null;
1614
public Component Component => component;
@@ -23,15 +21,15 @@ public void ReturnToPool()
2321
if (!isEnabled)
2422
return;
2523

26-
onBackToPool.Process();
24+
onBackToPool.SendReaction();
2725

2826
Pool.ReturnEntity(this);
2927
isEnabled = false;
3028
}
3129

3230
public void ReturnFromPool()
3331
{
34-
onBackFromPool.Process();
32+
onBackFromPool.SendReaction();
3533
isEnabled = true;
3634
}
3735

@@ -44,7 +42,7 @@ public void SetPool(Pool pool)
4442
}
4543
}
4644

47-
public void Process() =>
45+
public void HandleReaction() =>
4846
ReturnToPool();
4947
}
5048
}

README.md.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)