/// <summary> /// Dequeues a container from the pool and attaches it to a provided <see cref="BeatmapObject"/> /// </summary> /// <param name="obj">Object to store within the container.</param> protected void CreateContainerFromPool(BeatmapObject obj) { if (obj.HasAttachedContainer) { return; } //Debug.Log($"Creating container with hash code {obj.GetHashCode()}"); if (!PooledContainers.Any()) { CreateNewObject(); } BeatmapObjectContainer dequeued = PooledContainers.Dequeue(); dequeued.objectData = obj; dequeued.transform.localEulerAngles = Vector3.zero; dequeued.UpdateGridPosition(); dequeued.SafeSetActive(true); UpdateContainerData(dequeued, obj); dequeued.OutlineVisible = SelectionController.IsObjectSelected(obj); PluginLoader.BroadcastEvent <ObjectLoadedAttribute, BeatmapObjectContainer>(dequeued); LoadedContainers.Add(obj, dequeued); obj.HasAttachedContainer = true; OnContainerSpawn(dequeued, obj); }
private void NotePassedThreshold(bool _, int __, BeatmapObject newlyAdded) { PluginLoader.BroadcastEvent <NotePassedThresholdAttribute, BeatmapObject>(newlyAdded); }