private IEnumerator OnEnter(OshiroTrigger self)
        {
            Player player = self.SceneAs <Level>().GetPlayer();

            if (player != null)
            {
                self.OnEnter(player);
            }

            yield break;
        }
        // 修复 3C 第三面最后的传送点 Oshiro 不出现的问题
        private void RestoreOshiroTrigger(On.Celeste.OshiroTrigger.orig_ctor orig, OshiroTrigger self,
                                          EntityData data,
                                          Vector2 offset)
        {
            orig(self, data, offset);

            Vector2 oshiro3C = new Vector2(1520, -272);
            Level   level    = Engine.Scene.GetLevel();

            if (level != null && level.Session.Area.ToString() == "3HH" && level.StartPosition != null &&
                level.Session.GetSpawnPoint((Vector2)level.StartPosition) == oshiro3C)
            {
                self.Add(new Coroutine(OnEnter(self)));
            }
        }