public override void RegisterDependencies(ContainerBuilder containerBuilder) { base.RegisterDependencies(containerBuilder); containerBuilder.Register(c => SimulationWhitelist.ForServerSpawned).SingleInstance(); containerBuilder.Register(c => new SubnauticaServerProtobufSerializer("Assembly-CSharp", "Assembly-CSharp-firstpass", "NitroxModel", "NitroxModel-Subnautica")) .As <ServerProtobufSerializer>() .SingleInstance(); containerBuilder.RegisterType <SubnauticaEntitySpawnPointFactory>().As <EntitySpawnPointFactory>().SingleInstance(); ResourceAssets resourceAssets = ResourceAssetsParser.Parse(); containerBuilder.Register(c => resourceAssets).SingleInstance(); containerBuilder.Register(c => resourceAssets.WorldEntitiesByClassId).SingleInstance(); containerBuilder.Register(c => resourceAssets.PlaceholderPrefabsByGroupClassId).SingleInstance(); containerBuilder.RegisterType <SubnauticaUweWorldEntityFactory>().As <UweWorldEntityFactory>().SingleInstance(); SubnauticaUwePrefabFactory prefabFactory = new SubnauticaUwePrefabFactory(resourceAssets.LootDistributionsJson); containerBuilder.Register(c => prefabFactory).As <UwePrefabFactory>().SingleInstance(); Dictionary <TechTypeModel, IEntityBootstrapper> bootstrappersByTechType = new Dictionary <TechTypeModel, IEntityBootstrapper>(); bootstrappersByTechType[TechType.CrashHome.Model()] = new CrashFishBootstrapper(); bootstrappersByTechType[TechType.Reefback.Model()] = new ReefbackBootstrapper(); containerBuilder.Register(c => bootstrappersByTechType).SingleInstance(); }
public override void RegisterDependencies(ContainerBuilder containerBuilder) { base.RegisterDependencies(containerBuilder); containerBuilder.Register(c => SimulationWhitelist.ForServerSpawned).SingleInstance(); containerBuilder.Register(c => new SubnauticaServerProtoBufSerializer( "Assembly-CSharp", "Assembly-CSharp-firstpass", "NitroxModel", "NitroxModel-Subnautica")) .As <ServerProtoBufSerializer, IServerSerializer>() .SingleInstance(); containerBuilder.Register(c => new SubnauticaServerJsonSerializer()) .As <ServerJsonSerializer, IServerSerializer>() .SingleInstance(); containerBuilder.RegisterType <SubnauticaEntitySpawnPointFactory>().As <EntitySpawnPointFactory>().SingleInstance(); ResourceAssets resourceAssets = ResourceAssetsParser.Parse(); containerBuilder.Register(c => resourceAssets).SingleInstance(); containerBuilder.Register(c => resourceAssets.WorldEntitiesByClassId).SingleInstance(); containerBuilder.Register(c => resourceAssets.PrefabPlaceholderGroupsByGroupClassId).SingleInstance(); containerBuilder.Register(c => resourceAssets.NitroxRandom).SingleInstance(); containerBuilder.RegisterType <SubnauticaUweWorldEntityFactory>().As <UweWorldEntityFactory>().SingleInstance(); SubnauticaUwePrefabFactory prefabFactory = new SubnauticaUwePrefabFactory(resourceAssets.LootDistributionsJson); containerBuilder.Register(c => prefabFactory).As <UwePrefabFactory>().SingleInstance(); containerBuilder.Register(c => new Dictionary <NitroxTechType, IEntityBootstrapper> { [TechType.CrashHome.ToDto()] = new CrashFishBootstrapper(), [TechType.Reefback.ToDto()] = new ReefbackBootstrapper(), [TechType.None.ToDto()] = new UntypedCellEntityBootstrapper() }).SingleInstance(); containerBuilder.RegisterType <SubnauticaMap>().As <IMap>().InstancePerLifetimeScope(); }