|
|
- using System;
- using IPA;
- using IPA.Logging;
- using IPA.Config;
- using IPA.Config.Stores;
-
- namespace Demo
- {
- /*
- [Plugin(RuntimeOptions.DynamicInit)]
- */
- [Plugin(RuntimeOptions.SingleStartInit)]
- internal class Plugin
- {
- public static Logger log { get; private set; }
-
- [Init]
- public Plugin(Logger logger, Config conf)
- {
- log = logger;
- PluginConfig.Instance = conf.Generated<PluginConfig>();
- log.Debug("Config loaded");
-
- // setup that does not require game code
- // this is only called once ever, so do once-ever initialization
- }
-
- /*
- [Init]
- public Plugin(Logger logger)
- {
- log = logger;
- log.Debug("Basic plugin running!");
-
- // setup that does not require game code
- // this is only called once ever, so do once-ever initialization
- }
- */
-
- [Init]
- public void Init(Logger logger)
- {
- // logger will be the same instance as log currently is
- }
-
- /*
- [OnEnable]
- public void OnEnable()
- */
- [OnStart]
- public void OnStart()
- {
- // setup that requires game code
- }
-
- /*
- [OnDisable]
- public void OnDisable()
- */
- [OnExit]
- public void OnExit()
- {
- // teardown
- // this may be called mid-game if you are using RuntimeOptions.DynamicInit
- }
- }
- }
|