コード例 #1
0
        private void onLoadLevel(On.Celeste.Level.orig_LoadLevel orig, Celeste.Level self, Celeste.Player.IntroTypes playerIntro, bool isFromLoader)
        {
            orig(self, playerIntro, isFromLoader);

            if (!self.Entities.Any(entity => entity is DashCountIndicator))
            {
                // add the entity showing the dash count (it will be invisible unless the option is enabled)
                self.Add(new DashCountIndicator());
                self.Entities.UpdateLists();
            }
        }
コード例 #2
0
        private static void onLevelEnd(On.Celeste.Level.orig_End orig, Celeste.Level self)
        {
            // we're quitting the level, so we need to get rid of all of its entities.
            foreach (Entity entity in self.Entities)
            {
                queueReferenceToEntity(entity);
            }

            orig(self);

            if (nluaReferenceMap != null && nluaReferenceMap.TryGetValue(self, out int levelRef))
            {
                // it seems NLua can't dispose entities by itself, so we need to help it a bit.
                Logger.Log("ExtendedVariantMode/LeakPreventionHack", $"Cleaning up reference of NLua to {self.GetType().FullName} {levelRef}");
                nluaCollectObject.Invoke(nluaObjectTranslator, new object[] { levelRef });
            }

            // now we can terminate all queued objects.
            cleanUpReferencesToQueuedObjects();
        }
コード例 #3
0
 internal static void LoadLevel(_Level level, _Player.IntroTypes playerIntro, bool isFromLoader)
 => OnLoadLevel?.Invoke(level, playerIntro, isFromLoader);
コード例 #4
0
 internal static bool LoadEntity(_Level level, LevelData levelData, Vector2 offset, EntityData entityData)
 => OnLoadEntity?.InvokeWhileFalse(level, levelData, offset, entityData) ?? false;
コード例 #5
0
 internal static void TransitionTo(_Level level, LevelData next, Vector2 direction)
 => OnTransitionTo?.Invoke(level, next, direction);
コード例 #6
0
 internal static void CreatePauseMenuButtons(_Level level, TextMenu menu, bool minimal)
 => OnCreatePauseMenuButtons?.Invoke(level, menu, minimal);
コード例 #7
0
 internal static void Pause(_Level level, int startIndex, bool minimal, bool quickReset)
 => OnPause?.Invoke(level, startIndex, minimal, quickReset);
コード例 #8
0
 internal static void Complete(_Level level)
 => OnComplete?.Invoke(level);
コード例 #9
0
 internal static void Exit(_Level level, LevelExit exit, LevelExit.Mode mode, Session session, HiresSnow snow)
 => OnExit?.Invoke(level, exit, mode, session, snow);