Exemple #1
0
        /// <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();
            }
        }
Exemple #2
0
        private static void FactoryInitialize()
        {
            const int numberToPreAllocate = 20;

            for (int i = 0; i < numberToPreAllocate; i++)
            {
                TreadEffect instance = new TreadEffect(mContentManagerName, false);
                mPool.AddToPool(instance);
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 /// <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);
 }