/// <summary> /// Makes the argument objectToMakeUnused marked as unused. This method is generated to be used /// by generated code. Use Destroy instead when writing custom code so that your code will behave /// the same whether your Entity is pooled or not. /// </summary> public static void MakeUnused(TreadEffect objectToMakeUnused, bool callDestroy) { mPool.MakeUnused(objectToMakeUnused); if (callDestroy) { objectToMakeUnused.Destroy(); } }
private static void FactoryInitialize() { const int numberToPreAllocate = 20; for (int i = 0; i < numberToPreAllocate; i++) { TreadEffect instance = new TreadEffect(mContentManagerName, false); mPool.AddToPool(instance); } }
public static TreadEffect CreateNew(Layer layer, float x = 0, float y = 0) { TreadEffect instance = null; if (string.IsNullOrEmpty(mContentManagerName)) { throw new System.Exception("You must first initialize the factory to use it. You can either add PositionedObjectList of type TreadEffect (the most common solution) or call Initialize in custom code"); } instance = mPool.GetNextAvailable(); if (instance == null) { mPool.AddToPool(new TreadEffect(mContentManagerName, false)); instance = mPool.GetNextAvailable(); } instance.AddToManagers(layer); instance.X = x; instance.Y = y; foreach (var list in ListsToAddTo) { if (SortAxis == FlatRedBall.Math.Axis.X && list is PositionedObjectList <TreadEffect> ) { var index = (list as PositionedObjectList <TreadEffect>).GetFirstAfter(x, Axis.X, 0, list.Count); list.Insert(index, instance); } else if (SortAxis == FlatRedBall.Math.Axis.Y && list is PositionedObjectList <TreadEffect> ) { var index = (list as PositionedObjectList <TreadEffect>).GetFirstAfter(y, Axis.Y, 0, list.Count); list.Insert(index, instance); } else { // Sort Z not supported list.Add(instance); } } if (EntitySpawned != null) { EntitySpawned(instance); } return(instance); }
/// <summary> /// Makes the argument objectToMakeUnused marked as unused. This method is generated to be used /// by generated code. Use Destroy instead when writing custom code so that your code will behave /// the same whether your Entity is pooled or not. /// </summary> public static void MakeUnused(TreadEffect objectToMakeUnused) { MakeUnused(objectToMakeUnused, true); }