mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 00:39:53 +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;
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -22,9 +22,9 @@ namespace QSB.QuantumSync
|
||||
|
||||
private void OnSceneLoaded(OWScene scene, bool isInUniverse)
|
||||
{
|
||||
QSBWorldSync.Init<QSBSocketedQuantumObject, SocketedQuantumObject>(ref _socketedQuantumObjects);
|
||||
QSBWorldSync.Init<QSBQuantumSocket, QuantumSocket>(ref _quantumSockets);
|
||||
QSBWorldSync.Init<QSBMultiStateQuantumObject, MultiStateQuantumObject>(ref _multiStateQuantumObjects);
|
||||
_socketedQuantumObjects = QSBWorldSync.Init<QSBSocketedQuantumObject, SocketedQuantumObject>();
|
||||
_quantumSockets = QSBWorldSync.Init<QSBQuantumSocket, QuantumSocket>();
|
||||
_multiStateQuantumObjects = QSBWorldSync.Init<QSBMultiStateQuantumObject, MultiStateQuantumObject>();
|
||||
}
|
||||
|
||||
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 T GetWorldObject<T, U>(int id) where T : WorldObject<U> where U : UnityEngine.Object
|
||||
=> GetWorldObjects<T>().FirstOrDefault(x => x.ObjectId == id);
|
||||
public static TWorldObject GetWorldObject<TWorldObject, TUnityObject>(int 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
|
||||
=> WorldObjects.RemoveAll(x => x.GetType() == typeof(T));
|
||||
public static void RemoveWorldObjects<TWorldObject, TUnityObject>()
|
||||
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)
|
||||
where QSBType : WorldObject<BaseType>
|
||||
where BaseType : UnityEngine.Object
|
||||
=> list = Init<QSBType, BaseType>();
|
||||
|
||||
public static List<BaseType> Init<QSBType, BaseType>()
|
||||
where QSBType : WorldObject<BaseType>
|
||||
where BaseType : UnityEngine.Object
|
||||
public static List<TUnityObject> Init<TWorldObject, TUnityObject>()
|
||||
where TWorldObject : WorldObject<TUnityObject>
|
||||
where TUnityObject : UnityEngine.Object
|
||||
{
|
||||
var list = Resources.FindObjectsOfTypeAll<BaseType>().ToList();
|
||||
var list = Resources.FindObjectsOfTypeAll<TUnityObject>().ToList();
|
||||
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);
|
||||
AddWorldObject(obj);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user