public void Awake() { LogCore.logger = Logger; Assets.PopulateAssets(); Assets.ApplyShaders(); cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true); LogCore.LogD("Adding Monsters..."); var EnemyTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EnemyBuilder))); foreach (var enemyType in EnemyTypes) { EnemyBuilder enemy = (EnemyBuilder)Activator.CreateInstance(enemyType); LogCore.LogI(enemy); if (ValidateEnemy(enemy, enemies)) { enemy.Create(cfgFile); } } EnemyBuilder.AddToContentPack(); Assets.AddEffectDefs(); LogCore.LogD("Adding Monsters Complete."); ContentPackProvider.Init(); }
public CharacterCore Spawn() { switch (CharacterAsset) { case PlayerAsset asset: var id = asset.ID; if (PlayerIDOverride) { asset.ID = OverrideID; } // var player = CharacterCore.Create<PlayerCore>(asset, transform); var player = _playerBuilder.Create(asset, transform); asset.ID = id; return(player); case EnemyAsset asset: // return CharacterCore.Create<EnemyCore>(asset, transform); return(_enemyBuilder.Create(asset, transform)); default: return(null); } }