protected override void Init(MyObjectBuilder_DefinitionBase builder) { base.Init(builder); var ob = builder as MyObjectBuilder_ScenarioDefinition; AsteroidClustersEnabled = ob.AsteroidClusters.Enabled; AsteroidClustersOffset = ob.AsteroidClusters.Offset; CentralClusterEnabled = ob.AsteroidClusters.CentralCluster; DefaultToolbar = ob.DefaultToolbar; MainCharacterModel = MyStringId.GetOrCompute(ob.MainCharacterModel); if (ob.PossibleStartingStates != null && ob.PossibleStartingStates.Length > 0) { PossiblePlayerStarts = new MyWorldGeneratorStartingStateBase[ob.PossibleStartingStates.Length]; for (int i = 0; i < ob.PossibleStartingStates.Length; ++i) { PossiblePlayerStarts[i] = MyWorldGenerator.StartingStateFactory.CreateInstance(ob.PossibleStartingStates[i]); } } if (ob.WorldGeneratorOperations != null && ob.WorldGeneratorOperations.Length > 0) { WorldGeneratorOperations = new MyWorldGeneratorOperationBase[ob.WorldGeneratorOperations.Length]; for (int i = 0; i < ob.WorldGeneratorOperations.Length; ++i) { WorldGeneratorOperations[i] = MyWorldGenerator.OperationFactory.CreateInstance(ob.WorldGeneratorOperations[i]); } } if (ob.CreativeModeWeapons != null && ob.CreativeModeWeapons.Length > 0) { CreativeModeWeapons = new MyStringId[ob.CreativeModeWeapons.Length]; for (int i = 0; i < ob.CreativeModeWeapons.Length; ++i) { CreativeModeWeapons[i] = MyStringId.GetOrCompute(ob.CreativeModeWeapons[i]); } } if (ob.SurvivalModeWeapons != null && ob.SurvivalModeWeapons.Length > 0) { SurvivalModeWeapons = new MyStringId[ob.SurvivalModeWeapons.Length]; for (int i = 0; i < ob.SurvivalModeWeapons.Length; ++i) { SurvivalModeWeapons[i] = MyStringId.GetOrCompute(ob.SurvivalModeWeapons[i]); } } WorldBoundaries.Min = ob.WorldBoundaries.Min; WorldBoundaries.Max = ob.WorldBoundaries.Max; if (MyFakes.ENABLE_BATTLE_SYSTEM && ob.Battle != null) { Battle = new MyBattleSettings(); Battle.DefenderSlot = ob.Battle.DefenderSlot; Battle.DefenderEntityId = ob.Battle.DefenderEntityId; if (ob.Battle.AttackerSlots != null && ob.Battle.AttackerSlots.Length > 0) { Battle.AttackerSlots = new BoundingBoxD[ob.Battle.AttackerSlots.Length]; for (int i = 0; i < ob.Battle.AttackerSlots.Length; ++i) { Battle.AttackerSlots[i] = ob.Battle.AttackerSlots[i]; } } } }
protected override void Init(MyObjectBuilder_DefinitionBase builder) { base.Init(builder); var ob = builder as MyObjectBuilder_ScenarioDefinition; AsteroidClustersEnabled = ob.AsteroidClusters.Enabled; AsteroidClustersOffset = ob.AsteroidClusters.Offset; CentralClusterEnabled = ob.AsteroidClusters.CentralCluster; DefaultToolbar = ob.DefaultToolbar; MainCharacterModel = MyStringId.GetOrCompute(ob.MainCharacterModel); if (ob.PossibleStartingStates != null && ob.PossibleStartingStates.Length > 0) { PossiblePlayerStarts = new MyWorldGeneratorStartingStateBase[ob.PossibleStartingStates.Length]; for (int i = 0; i < ob.PossibleStartingStates.Length; ++i) { PossiblePlayerStarts[i] = MyWorldGenerator.StartingStateFactory.CreateInstance(ob.PossibleStartingStates[i]); } } if (ob.WorldGeneratorOperations != null && ob.WorldGeneratorOperations.Length > 0) { WorldGeneratorOperations = new MyWorldGeneratorOperationBase[ob.WorldGeneratorOperations.Length]; for (int i = 0; i < ob.WorldGeneratorOperations.Length; ++i) { WorldGeneratorOperations[i] = MyWorldGenerator.OperationFactory.CreateInstance(ob.WorldGeneratorOperations[i]); } } if (ob.CreativeModeWeapons != null && ob.CreativeModeWeapons.Length > 0) { CreativeModeWeapons = new MyStringId[ob.CreativeModeWeapons.Length]; for (int i = 0; i < ob.CreativeModeWeapons.Length; ++i) { CreativeModeWeapons[i] = MyStringId.GetOrCompute(ob.CreativeModeWeapons[i]); } } if (ob.SurvivalModeWeapons != null && ob.SurvivalModeWeapons.Length > 0) { SurvivalModeWeapons = new MyStringId[ob.SurvivalModeWeapons.Length]; for (int i = 0; i < ob.SurvivalModeWeapons.Length; ++i) { SurvivalModeWeapons[i] = MyStringId.GetOrCompute(ob.SurvivalModeWeapons[i]); } } WorldBoundaries.Min = ob.WorldBoundaries.Min; WorldBoundaries.Max = ob.WorldBoundaries.Max; if (MyFakes.ENABLE_BATTLE_SYSTEM && ob.Battle != null) { Battle = new MyBattleSettings(); Battle.DefenderSlot = ob.Battle.DefenderSlot; Battle.DefenderEntityId = ob.Battle.DefenderEntityId; if (ob.Battle.AttackerSlots != null && ob.Battle.AttackerSlots.Length > 0) { Battle.AttackerSlots = new BoundingBoxD[ob.Battle.AttackerSlots.Length]; for (int i = 0; i < ob.Battle.AttackerSlots.Length; ++i) { Battle.AttackerSlots[i] = ob.Battle.AttackerSlots[i]; } } } }