예제 #1
0
        public override void Create()
        {
            behaviours = new List <GameBehaviour>(ModData.mods.Values.Select(m => m.gameBehaviour).Where(gb => gb != null));

            base.Create();

            preUpdate        = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "PreUpdate");
            postUpdate       = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "PostUpdate");
            onUpdateKeyboard = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "OnUpdateKeyboard");

            preDraw  = HookManager.CreateHooks <GameBehaviour, Action <SpriteBatch> >(behaviours, "PreDraw");
            postDraw = HookManager.CreateHooks <GameBehaviour, Action <SpriteBatch> >(behaviours, "PostDraw");

            preScreenClear  = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "PreScreenClear");
            postScreenClear = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "PostScreenClear");

            preDrawBackground  = HookManager.CreateHooks <GameBehaviour, Func <SpriteBatch, bool> >(behaviours, "PreDrawBackground");
            postDrawBackground = HookManager.CreateHooks <GameBehaviour, Action <SpriteBatch> >(behaviours, "PostDrawBackground");

            updateDebug = HookManager.CreateHooks <GameBehaviour, Action>(behaviours, "UpdateDebug");

            updateMusic = HookManager.CreateHooks <GameBehaviour, Action <Ref <BgmEntry> > >(behaviours, "UpdateMusic");
        }
예제 #2
0
 public void OnUnload()
 {
     HookManager.Call(onUnload);
 }
예제 #3
0
 public void OnAllModsLoaded()
 {
     HookManager.Call(onAllModsLoaded);
 }
예제 #4
0
 public void Create()
 {
     onAllModsLoaded = HookManager.CreateHooks <ModDef, Action>(ModData.mods.Values, "OnAllModsLoaded");
     onUnload        = HookManager.CreateHooks <ModDef, Action>(ModData.mods.Values, "OnUnload");
 }
예제 #5
0
파일: GameHooks.cs 프로젝트: Nopezal/Prism
 public void OnUpdateKeyboard()
 {
     HookManager.Call(onUpdateKeyboard);
 }
예제 #6
0
파일: GameHooks.cs 프로젝트: Nopezal/Prism
 public void PostUpdate()
 {
     HookManager.Call(postUpdate);
 }
예제 #7
0
파일: GameHooks.cs 프로젝트: Nopezal/Prism
 public void PreUpdate()
 {
     HookManager.Call(preUpdate);
 }
예제 #8
0
 public void PostScreenClear()
 {
     HookManager.Call(postScreenClear);
 }
예제 #9
0
 public void PreScreenClear()
 {
     HookManager.Call(preScreenClear);
 }
예제 #10
0
 public void PostDraw(SpriteBatch sb)
 {
     HookManager.Call(postDraw, sb);
 }
예제 #11
0
 public void PreDraw(SpriteBatch sb)
 {
     HookManager.Call(preDraw, sb);
 }
예제 #12
0
 public void PostDrawBackground(SpriteBatch sb)
 {
     HookManager.Call(postDrawBackground, sb);
 }
예제 #13
0
        public bool PreDrawBackground(SpriteBatch sb)
        {
            var r = HookManager.Call(preDrawBackground, sb);

            return(r.Length == 0 || r.All(Convert.ToBoolean));
        }