private void processRequests(bool processAll = false) { int num = 0; int count = Requests.Count; for (int i = 0; i < count; i++) { LODRequest lODRequest = Requests[i]; if (!lODRequest.CanBeSpawned) { continue; } lODRequest.LODGameObject = generator.Spawn(); if (lODRequest.CanBeSpawned) { LODRequest lODRequest2 = identifyLowerWeightedToRevoke(i); if (!(lODRequest2 != null)) { break; } revokeRequest(lODRequest2, lODRequest); } num++; if (!processAll && data.MaxProcessesPerUpdate > 0 && num >= data.MaxProcessesPerUpdate) { break; } } }
public void UnpauseRequest(LODRequest request) { if (Manager == null) { throw new ArgumentException("Called RemoveRequest with a null entity", "manager"); } Manager.UnpauseRequest(request); }
public virtual void OnDestroy() { if (request != null) { request.RemoveWeightingRule(this); request = null; } }
private void onRequestRevoked(LODRequest revokedRequest, LODRequest revokedForRequest) { revokedRequest.BeingProcessed = false; revokedForRequest.BeingProcessed = false; if (revokedForRequest.CanBeSpawned && Requests.IndexOf(revokedForRequest) >= 0) { revokedForRequest.LODGameObject = generator.Spawn(); } }
public void PauseRequest(LODRequest request) { request.IsPaused = true; if (request.CanBeRevoked) { generator.Unspawn(request.LODGameObject); } request.LODGameObject = null; }
public void RemoveRequest(LODRequest request) { Requests.Remove(request); if (request.CanBeRevoked) { generator.Unspawn(request.LODGameObject); } pool.Unspawn(request.gameObject); }
private LODRequest generateRequest(LODRequestData requestData) { GameObject gameObject = pool.Spawn(); LODRequest component = gameObject.GetComponent <LODRequest>(); component.Data = requestData; component.Setup(); Requests.Add(component); return(component); }
public LODRequest Request(LODRequestData requestData, bool attemptSpawn = true) { LODRequest lODRequest = generateRequest(requestData); if (attemptSpawn) { spawnSingle(lODRequest); } return(lODRequest); }
private void spawnSingle(LODRequest request) { if (Requests.Count < generator.MaxCount) { request.CalculateWeighting(); if (request.CanBeSpawned) { request.LODGameObject = generator.Spawn(); } } }
private void revokeRequest(LODRequest requestToRevoke, LODRequest revokingForRequest) { GameObject lODGameObject = requestToRevoke.LODGameObject; requestToRevoke.LODGameObject = null; generator.Unspawn(lODGameObject, delegate { onRequestRevoked(requestToRevoke, revokingForRequest); }); requestToRevoke.BeingProcessed = true; revokingForRequest.BeingProcessed = true; releasedMetric.UpdateValue(releasedMetric.Value + 1); }
private LODRequest identifyLowerWeightedToRevoke(int currentIndex) { int count = Requests.Count; for (int num = count - 1; num > currentIndex; num--) { LODRequest lODRequest = Requests[num]; if (lODRequest.CanBeRevoked) { return(lODRequest); } } return(null); }
public void UnpauseRequest(LODRequest request) { getRequestSystem(request.Data.Type).UnpauseRequest(request); }
public void RemoveRequest(LODRequest request) { getRequestSystem(request.Data.Type).RemoveRequest(request); }
public void UnpauseRequest(LODRequest request) { request.IsPaused = false; }
public void Awake() { request = GetComponent <LODRequest>(); request.AddWeightingRule(this); }