mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 18:40:03 +00:00
renamed generic parameters, removed ref list from init
This commit is contained in:
parent
1f1ad692a6
commit
03078f9f3d
@ -18,7 +18,7 @@ namespace QSB.ElevatorSync
|
|||||||
|
|
||||||
public void OnDestroy() => QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
|
public void OnDestroy() => QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
|
||||||
|
|
||||||
private void OnSceneLoaded(OWScene scene, bool isInUniverse) => QSBWorldSync.Init<QSBElevator, Elevator>(ref _elevators);
|
private void OnSceneLoaded(OWScene scene, bool isInUniverse) => _elevators = QSBWorldSync.Init<QSBElevator, Elevator>();
|
||||||
|
|
||||||
public int GetId(Elevator elevator) => _elevators.IndexOf(elevator);
|
public int GetId(Elevator elevator) => _elevators.IndexOf(elevator);
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,9 @@ namespace QSB.QuantumSync
|
|||||||
|
|
||||||
private void OnSceneLoaded(OWScene scene, bool isInUniverse)
|
private void OnSceneLoaded(OWScene scene, bool isInUniverse)
|
||||||
{
|
{
|
||||||
QSBWorldSync.Init<QSBSocketedQuantumObject, SocketedQuantumObject>(ref _socketedQuantumObjects);
|
_socketedQuantumObjects = QSBWorldSync.Init<QSBSocketedQuantumObject, SocketedQuantumObject>();
|
||||||
QSBWorldSync.Init<QSBQuantumSocket, QuantumSocket>(ref _quantumSockets);
|
_quantumSockets = QSBWorldSync.Init<QSBQuantumSocket, QuantumSocket>();
|
||||||
QSBWorldSync.Init<QSBMultiStateQuantumObject, MultiStateQuantumObject>(ref _multiStateQuantumObjects);
|
_multiStateQuantumObjects = QSBWorldSync.Init<QSBMultiStateQuantumObject, MultiStateQuantumObject>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetId(SocketedQuantumObject obj) => _socketedQuantumObjects.IndexOf(obj);
|
public int GetId(SocketedQuantumObject obj) => _socketedQuantumObjects.IndexOf(obj);
|
||||||
|
@ -31,25 +31,24 @@ namespace QSB.WorldSync
|
|||||||
|
|
||||||
public static IEnumerable<T> GetWorldObjects<T>() => WorldObjects.OfType<T>();
|
public static IEnumerable<T> GetWorldObjects<T>() => WorldObjects.OfType<T>();
|
||||||
|
|
||||||
public static T GetWorldObject<T, U>(int id) where T : WorldObject<U> where U : UnityEngine.Object
|
public static TWorldObject GetWorldObject<TWorldObject, TUnityObject>(int id)
|
||||||
=> GetWorldObjects<T>().FirstOrDefault(x => x.ObjectId == id);
|
where TWorldObject : WorldObject<TUnityObject>
|
||||||
|
where TUnityObject : UnityEngine.Object
|
||||||
|
=> GetWorldObjects<TWorldObject>().FirstOrDefault(x => x.ObjectId == id);
|
||||||
|
|
||||||
public static void RemoveWorldObjects<T, U>() where T : WorldObject<U> where U : UnityEngine.Object
|
public static void RemoveWorldObjects<TWorldObject, TUnityObject>()
|
||||||
=> WorldObjects.RemoveAll(x => x.GetType() == typeof(T));
|
where TWorldObject : WorldObject<TUnityObject>
|
||||||
|
where TUnityObject : UnityEngine.Object
|
||||||
|
=> WorldObjects.RemoveAll(x => x.GetType() == typeof(TWorldObject));
|
||||||
|
|
||||||
public static void Init<QSBType, BaseType>(ref List<BaseType> list)
|
public static List<TUnityObject> Init<TWorldObject, TUnityObject>()
|
||||||
where QSBType : WorldObject<BaseType>
|
where TWorldObject : WorldObject<TUnityObject>
|
||||||
where BaseType : UnityEngine.Object
|
where TUnityObject : UnityEngine.Object
|
||||||
=> list = Init<QSBType, BaseType>();
|
|
||||||
|
|
||||||
public static List<BaseType> Init<QSBType, BaseType>()
|
|
||||||
where QSBType : WorldObject<BaseType>
|
|
||||||
where BaseType : UnityEngine.Object
|
|
||||||
{
|
{
|
||||||
var list = Resources.FindObjectsOfTypeAll<BaseType>().ToList();
|
var list = Resources.FindObjectsOfTypeAll<TUnityObject>().ToList();
|
||||||
for (var id = 0; id < list.Count; id++)
|
for (var id = 0; id < list.Count; id++)
|
||||||
{
|
{
|
||||||
var obj = GetWorldObject<QSBType, BaseType>(id) ?? (QSBType)Activator.CreateInstance(typeof(QSBType));
|
var obj = GetWorldObject<TWorldObject, TUnityObject>(id) ?? (TWorldObject)Activator.CreateInstance(typeof(TWorldObject));
|
||||||
obj.Init(list[id], id);
|
obj.Init(list[id], id);
|
||||||
AddWorldObject(obj);
|
AddWorldObject(obj);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user