private static double GetMaxActivationTime(MyEnvironmentHostilityEnum enviroment)
        {
            double defaultMaxMinutes = 0.0f;

            switch (enviroment)
            {
            case MyEnvironmentHostilityEnum.NORMAL:
                defaultMaxMinutes = MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MAX_TIME;
                break;

            case MyEnvironmentHostilityEnum.CATACLYSM:
                defaultMaxMinutes = MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MAX_TIME;
                break;

            case MyEnvironmentHostilityEnum.CATACLYSM_UNREAL:
                defaultMaxMinutes = MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MAX_TIME;
                break;

            default:
                Debug.Assert(false, "Invalid branch");
                break;
            }
            MyGlobalEventDefinition definition = MyDefinitionManager.Static.GetEventDefinition(new MyDefinitionId(typeof(MyObjectBuilder_GlobalEventBase), m_enviromentHostilityName[(int)enviroment]));

            if (definition != null && definition.MaxActivationTime.HasValue)
            {
                defaultMaxMinutes = definition.MaxActivationTime.Value.TotalMinutes;
            }
            return(defaultMaxMinutes);
        }
        public static TimeSpan CalculateShowerTime(MyEnvironmentHostilityEnum hostility)
        {
            double timeInMinutes = 5;

            switch (hostility)
            {
            case MyEnvironmentHostilityEnum.SAFE:
                Debug.Assert(false, "Meteor shower shouldnt be enabled in safe enviroment");
                break;

            case MyEnvironmentHostilityEnum.NORMAL:
                timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MAX_TIME) / MathHelper.Max(1, m_lastTargetCount);
                timeInMinutes = MathHelper.Max(0.4, timeInMinutes);
                break;

            case MyEnvironmentHostilityEnum.CATACLYSM:
                timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MAX_TIME) / MathHelper.Max(1, m_lastTargetCount);
                timeInMinutes = MathHelper.Max(0.4, timeInMinutes);
                break;

            case MyEnvironmentHostilityEnum.CATACLYSM_UNREAL:
                timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MAX_TIME);
                break;

            default:
                Debug.Assert(false, "Invalid branch");
                break;
            }
            return(TimeSpan.FromMinutes(timeInMinutes));
        }
Example #3
0
        public static TimeSpan CalculateShowerTime(MyEnvironmentHostilityEnum newHostility, MyEnvironmentHostilityEnum oldHostility, TimeSpan oldTime)
        {
            double timeInMinutes  = oldTime.TotalMinutes;
            double normalizedTime = timeInMinutes / GetMaxActivationTime(oldHostility);

            timeInMinutes = normalizedTime * GetMaxActivationTime(newHostility);
            return(TimeSpan.FromMinutes(timeInMinutes));
        }
        public static double GetActivationTime(MyEnvironmentHostilityEnum hostility, double defaultMinMinutes, double defaultMaxMinutes)
        {
            MyGlobalEventDefinition definition = MyDefinitionManager.Static.GetEventDefinition(new MyDefinitionId(typeof(MyObjectBuilder_GlobalEventBase), m_enviromentHostilityName[(int)hostility]));

            if (definition != null)
            {
                if (definition.MinActivationTime.HasValue)
                {
                    defaultMinMinutes = definition.MinActivationTime.Value.TotalMinutes;
                }
                if (definition.MaxActivationTime.HasValue)
                {
                    defaultMaxMinutes = definition.MaxActivationTime.Value.TotalMinutes;
                }
            }
            return(MyUtils.GetRandomDouble(defaultMinMinutes, defaultMaxMinutes));
        }
        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;
            DefaultEnvironment      = ob.DefaultEnvironment;
            CreativeDefaultToolbar  = ob.CreativeDefaultToolbar;
            SurvivalDefaultToolbar  = ob.SurvivalDefaultToolbar;
            MainCharacterModel      = MyStringId.GetOrCompute(ob.MainCharacterModel);

            GameDate = new DateTime(ob.GameDate);

            SunDirection = ob.SunDirection;

            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]);
                }
            }

            if (ob.CreativeModeComponents != null && ob.CreativeModeComponents.Length > 0)
            {
                CreativeModeComponents = new StartingItem[ob.CreativeModeComponents.Length];
                for (int i = 0; i < ob.CreativeModeComponents.Length; ++i)
                {
                    CreativeModeComponents[i].amount   = (MyFixedPoint)ob.CreativeModeComponents[i].amount;
                    CreativeModeComponents[i].itemName = MyStringId.GetOrCompute(ob.CreativeModeComponents[i].itemName);
                }
            }

            if (ob.SurvivalModeComponents != null && ob.SurvivalModeComponents.Length > 0)
            {
                SurvivalModeComponents = new StartingItem[ob.SurvivalModeComponents.Length];
                for (int i = 0; i < ob.SurvivalModeComponents.Length; ++i)
                {
                    SurvivalModeComponents[i].amount   = (MyFixedPoint)ob.SurvivalModeComponents[i].amount;
                    SurvivalModeComponents[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModeComponents[i].itemName);
                }
            }

            if (ob.CreativeModePhysicalItems != null && ob.CreativeModePhysicalItems.Length > 0)
            {
                CreativeModePhysicalItems = new StartingPhysicalItem[ob.CreativeModePhysicalItems.Length];
                for (int i = 0; i < ob.CreativeModePhysicalItems.Length; ++i)
                {
                    CreativeModePhysicalItems[i].amount   = (MyFixedPoint)ob.CreativeModePhysicalItems[i].amount;
                    CreativeModePhysicalItems[i].itemName = MyStringId.GetOrCompute(ob.CreativeModePhysicalItems[i].itemName);
                    CreativeModePhysicalItems[i].itemType = MyStringId.GetOrCompute(ob.CreativeModePhysicalItems[i].itemType);
                }
            }

            if (ob.SurvivalModePhysicalItems != null && ob.SurvivalModePhysicalItems.Length > 0)
            {
                SurvivalModePhysicalItems = new StartingPhysicalItem[ob.SurvivalModePhysicalItems.Length];
                for (int i = 0; i < ob.SurvivalModePhysicalItems.Length; ++i)
                {
                    SurvivalModePhysicalItems[i].amount   = (MyFixedPoint)ob.SurvivalModePhysicalItems[i].amount;
                    SurvivalModePhysicalItems[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModePhysicalItems[i].itemName);
                    SurvivalModePhysicalItems[i].itemType = MyStringId.GetOrCompute(ob.SurvivalModePhysicalItems[i].itemType);
                }
            }

            if (ob.CreativeModeAmmoItems != null && ob.CreativeModeAmmoItems.Length > 0)
            {
                CreativeModeAmmoItems = new StartingItem[ob.CreativeModeAmmoItems.Length];
                for (int i = 0; i < ob.CreativeModeAmmoItems.Length; ++i)
                {
                    CreativeModeAmmoItems[i].amount   = (MyFixedPoint)ob.CreativeModeAmmoItems[i].amount;
                    CreativeModeAmmoItems[i].itemName = MyStringId.GetOrCompute(ob.CreativeModeAmmoItems[i].itemName);
                }
            }

            if (ob.SurvivalModeAmmoItems != null && ob.SurvivalModeAmmoItems.Length > 0)
            {
                SurvivalModeAmmoItems = new StartingItem[ob.SurvivalModeAmmoItems.Length];
                for (int i = 0; i < ob.SurvivalModeAmmoItems.Length; ++i)
                {
                    SurvivalModeAmmoItems[i].amount   = (MyFixedPoint)ob.SurvivalModeAmmoItems[i].amount;
                    SurvivalModeAmmoItems[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModeAmmoItems[i].itemName);
                }
            }

            WorldBoundaries.Min = ob.WorldBoundaries.Min;
            WorldBoundaries.Max = ob.WorldBoundaries.Max;
        }
 public static TimeSpan CalculateShowerTime(MyEnvironmentHostilityEnum hostility)
 {
     double timeInMinutes = 5;
     switch (hostility)
     {
         case MyEnvironmentHostilityEnum.SAFE:
             Debug.Assert(false, "Meteor shower shouldnt be enabled in safe enviroment");
             break;
         case MyEnvironmentHostilityEnum.NORMAL:
             timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MAX_TIME) / MathHelper.Max(1, m_lastTargetCount);
             timeInMinutes = MathHelper.Max(0.4, timeInMinutes);
             break;
         case MyEnvironmentHostilityEnum.CATACLYSM:
             timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MAX_TIME) / MathHelper.Max(1, m_lastTargetCount);
             timeInMinutes = MathHelper.Max(0.4, timeInMinutes);
             break;
         case MyEnvironmentHostilityEnum.CATACLYSM_UNREAL:
             timeInMinutes = GetActivationTime(hostility, MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MIN_TIME, MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MAX_TIME);
             break;
         default:
             Debug.Assert(false, "Invalid branch");
             break;
     }
     return TimeSpan.FromMinutes(timeInMinutes);
 }
 private static double GetMaxActivationTime(MyEnvironmentHostilityEnum enviroment)
 {
     double defaultMaxMinutes = 0.0f;
     switch (enviroment)
     {
         case MyEnvironmentHostilityEnum.NORMAL:
             defaultMaxMinutes = MyMeteorShowerEventConstants.NORMAL_HOSTILITY_MAX_TIME;
             break;
         case MyEnvironmentHostilityEnum.CATACLYSM:
             defaultMaxMinutes = MyMeteorShowerEventConstants.CATACLYSM_HOSTILITY_MAX_TIME;
             break;
         case MyEnvironmentHostilityEnum.CATACLYSM_UNREAL:
             defaultMaxMinutes = MyMeteorShowerEventConstants.CATACLYSM_UNREAL_HOSTILITY_MAX_TIME;
             break;
         default:
             Debug.Assert(false, "Invalid branch");
             break;
     }
     MyGlobalEventDefinition definition = MyDefinitionManager.Static.GetEventDefinition(new MyDefinitionId(typeof(MyObjectBuilder_GlobalEventBase), m_enviromentHostilityName[(int)enviroment]));
     if (definition != null && definition.MaxActivationTime.HasValue)
     {
       defaultMaxMinutes = definition.MaxActivationTime.Value.TotalMinutes;
     }
     return defaultMaxMinutes;
 }
 public static double GetActivationTime(MyEnvironmentHostilityEnum hostility, double defaultMinMinutes, double defaultMaxMinutes)
 {
     MyGlobalEventDefinition definition = MyDefinitionManager.Static.GetEventDefinition(new MyDefinitionId(typeof(MyObjectBuilder_GlobalEventBase), m_enviromentHostilityName[(int)hostility]));
        if (definition != null)
        {
        if (definition.MinActivationTime.HasValue)
        {
            defaultMinMinutes = definition.MinActivationTime.Value.TotalMinutes;
        }
        if (definition.MaxActivationTime.HasValue)
        {
            defaultMaxMinutes = definition.MaxActivationTime.Value.TotalMinutes;
        }
        }
        return MyUtils.GetRandomDouble(defaultMinMinutes, defaultMaxMinutes);
 }
 public static TimeSpan CalculateShowerTime(MyEnvironmentHostilityEnum newHostility, MyEnvironmentHostilityEnum oldHostility, TimeSpan oldTime)
 {
     double timeInMinutes = oldTime.TotalMinutes;
     double normalizedTime = 1.0;
     if (oldHostility != MyEnvironmentHostilityEnum.SAFE)
     {
         normalizedTime = timeInMinutes / GetMaxActivationTime(oldHostility);
     }
     timeInMinutes = normalizedTime * GetMaxActivationTime(newHostility);
     return TimeSpan.FromMinutes(timeInMinutes);
 }
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);
            var ob = (MyObjectBuilder_ScenarioDefinition) builder;

            GameDefinition = ob.GameDefinition;

            AsteroidClustersEnabled = ob.AsteroidClusters.Enabled;
            AsteroidClustersOffset  = ob.AsteroidClusters.Offset;
            CentralClusterEnabled   = ob.AsteroidClusters.CentralCluster;
            DefaultEnvironment      = ob.DefaultEnvironment;
            CreativeDefaultToolbar  = ob.CreativeDefaultToolbar;
            SurvivalDefaultToolbar  = ob.SurvivalDefaultToolbar;
            MainCharacterModel = MyStringId.GetOrCompute(ob.MainCharacterModel);

            GameDate = new DateTime(ob.GameDate);

            SunDirection = ob.SunDirection;
            
            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]);
                }
            }

            if (ob.CreativeModeComponents != null && ob.CreativeModeComponents.Length > 0)
            {
                CreativeModeComponents = new StartingItem[ob.CreativeModeComponents.Length];
                for (int i = 0; i < ob.CreativeModeComponents.Length; ++i)
                {
                    CreativeModeComponents[i].amount = (MyFixedPoint)ob.CreativeModeComponents[i].amount;
                    CreativeModeComponents[i].itemName = MyStringId.GetOrCompute(ob.CreativeModeComponents[i].itemName);
                }
            }

            if (ob.SurvivalModeComponents != null && ob.SurvivalModeComponents.Length > 0)
            {
                SurvivalModeComponents = new StartingItem[ob.SurvivalModeComponents.Length];
                for (int i = 0; i < ob.SurvivalModeComponents.Length; ++i)
                {
                    SurvivalModeComponents[i].amount = (MyFixedPoint)ob.SurvivalModeComponents[i].amount;
                    SurvivalModeComponents[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModeComponents[i].itemName);
                }
            }

            if (ob.CreativeModePhysicalItems != null && ob.CreativeModePhysicalItems.Length > 0)
            {
                CreativeModePhysicalItems = new StartingPhysicalItem[ob.CreativeModePhysicalItems.Length];
                for (int i = 0; i < ob.CreativeModePhysicalItems.Length; ++i)
                {
                    CreativeModePhysicalItems[i].amount = (MyFixedPoint)ob.CreativeModePhysicalItems[i].amount;
                    CreativeModePhysicalItems[i].itemName = MyStringId.GetOrCompute(ob.CreativeModePhysicalItems[i].itemName);
                    CreativeModePhysicalItems[i].itemType = MyStringId.GetOrCompute(ob.CreativeModePhysicalItems[i].itemType);
                }
            }

            if (ob.SurvivalModePhysicalItems != null && ob.SurvivalModePhysicalItems.Length > 0)
            {
                SurvivalModePhysicalItems = new StartingPhysicalItem[ob.SurvivalModePhysicalItems.Length];
                for (int i = 0; i < ob.SurvivalModePhysicalItems.Length; ++i)
                {
                    SurvivalModePhysicalItems[i].amount = (MyFixedPoint)ob.SurvivalModePhysicalItems[i].amount;
                    SurvivalModePhysicalItems[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModePhysicalItems[i].itemName);
                    SurvivalModePhysicalItems[i].itemType = MyStringId.GetOrCompute(ob.SurvivalModePhysicalItems[i].itemType);
                }
            }

            if (ob.CreativeModeAmmoItems != null && ob.CreativeModeAmmoItems.Length > 0)
            {
                CreativeModeAmmoItems = new StartingItem[ob.CreativeModeAmmoItems.Length];
                for (int i = 0; i < ob.CreativeModeAmmoItems.Length; ++i)
                {
                    CreativeModeAmmoItems[i].amount = (MyFixedPoint)ob.CreativeModeAmmoItems[i].amount;
                    CreativeModeAmmoItems[i].itemName = MyStringId.GetOrCompute(ob.CreativeModeAmmoItems[i].itemName);
                }
            }

            if (ob.SurvivalModeAmmoItems != null && ob.SurvivalModeAmmoItems.Length > 0)
            {
                SurvivalModeAmmoItems = new StartingItem[ob.SurvivalModeAmmoItems.Length];
                for (int i = 0; i < ob.SurvivalModeAmmoItems.Length; ++i)
                {
                    SurvivalModeAmmoItems[i].amount = (MyFixedPoint)ob.SurvivalModeAmmoItems[i].amount;
                    SurvivalModeAmmoItems[i].itemName = MyStringId.GetOrCompute(ob.SurvivalModeAmmoItems[i].itemName);
                }
            }

            CreativeInventoryItems = ob.CreativeInventoryItems;
            SurvivalInventoryItems = ob.SurvivalInventoryItems;

            WorldBoundaries.Min = ob.WorldBoundaries.Min;
            WorldBoundaries.Max = ob.WorldBoundaries.Max;
        }
Example #11
0
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            BoundingBoxD?nullable1;

            base.Init(builder);
            MyObjectBuilder_ScenarioDefinition definition = (MyObjectBuilder_ScenarioDefinition)builder;

            this.GameDefinition          = definition.GameDefinition;
            this.Environment             = definition.EnvironmentDefinition;
            this.AsteroidClustersEnabled = definition.AsteroidClusters.Enabled;
            this.AsteroidClustersOffset  = definition.AsteroidClusters.Offset;
            this.CentralClusterEnabled   = definition.AsteroidClusters.CentralCluster;
            this.DefaultEnvironment      = definition.DefaultEnvironment;
            this.CreativeDefaultToolbar  = definition.CreativeDefaultToolbar;
            this.SurvivalDefaultToolbar  = definition.SurvivalDefaultToolbar;
            this.MainCharacterModel      = MyStringId.GetOrCompute(definition.MainCharacterModel);
            this.GameDate     = new DateTime(definition.GameDate);
            this.SunDirection = (Vector3)definition.SunDirection;
            if ((definition.PossibleStartingStates != null) && (definition.PossibleStartingStates.Length != 0))
            {
                this.PossiblePlayerStarts = new MyWorldGeneratorStartingStateBase[definition.PossibleStartingStates.Length];
                for (int i = 0; i < definition.PossibleStartingStates.Length; i++)
                {
                    this.PossiblePlayerStarts[i] = MyWorldGenerator.StartingStateFactory.CreateInstance(definition.PossibleStartingStates[i]);
                }
            }
            if ((definition.WorldGeneratorOperations != null) && (definition.WorldGeneratorOperations.Length != 0))
            {
                this.WorldGeneratorOperations = new MyWorldGeneratorOperationBase[definition.WorldGeneratorOperations.Length];
                for (int i = 0; i < definition.WorldGeneratorOperations.Length; i++)
                {
                    this.WorldGeneratorOperations[i] = MyWorldGenerator.OperationFactory.CreateInstance(definition.WorldGeneratorOperations[i]);
                }
            }
            if ((definition.CreativeModeWeapons != null) && (definition.CreativeModeWeapons.Length != 0))
            {
                this.CreativeModeWeapons = new MyStringId[definition.CreativeModeWeapons.Length];
                for (int i = 0; i < definition.CreativeModeWeapons.Length; i++)
                {
                    this.CreativeModeWeapons[i] = MyStringId.GetOrCompute(definition.CreativeModeWeapons[i]);
                }
            }
            if ((definition.SurvivalModeWeapons != null) && (definition.SurvivalModeWeapons.Length != 0))
            {
                this.SurvivalModeWeapons = new MyStringId[definition.SurvivalModeWeapons.Length];
                for (int i = 0; i < definition.SurvivalModeWeapons.Length; i++)
                {
                    this.SurvivalModeWeapons[i] = MyStringId.GetOrCompute(definition.SurvivalModeWeapons[i]);
                }
            }
            if ((definition.CreativeModeComponents != null) && (definition.CreativeModeComponents.Length != 0))
            {
                this.CreativeModeComponents = new StartingItem[definition.CreativeModeComponents.Length];
                for (int i = 0; i < definition.CreativeModeComponents.Length; i++)
                {
                    this.CreativeModeComponents[i].amount   = (MyFixedPoint)definition.CreativeModeComponents[i].amount;
                    this.CreativeModeComponents[i].itemName = MyStringId.GetOrCompute(definition.CreativeModeComponents[i].itemName);
                }
            }
            if ((definition.SurvivalModeComponents != null) && (definition.SurvivalModeComponents.Length != 0))
            {
                this.SurvivalModeComponents = new StartingItem[definition.SurvivalModeComponents.Length];
                for (int i = 0; i < definition.SurvivalModeComponents.Length; i++)
                {
                    this.SurvivalModeComponents[i].amount   = (MyFixedPoint)definition.SurvivalModeComponents[i].amount;
                    this.SurvivalModeComponents[i].itemName = MyStringId.GetOrCompute(definition.SurvivalModeComponents[i].itemName);
                }
            }
            if ((definition.CreativeModePhysicalItems != null) && (definition.CreativeModePhysicalItems.Length != 0))
            {
                this.CreativeModePhysicalItems = new StartingPhysicalItem[definition.CreativeModePhysicalItems.Length];
                for (int i = 0; i < definition.CreativeModePhysicalItems.Length; i++)
                {
                    this.CreativeModePhysicalItems[i].amount   = (MyFixedPoint)definition.CreativeModePhysicalItems[i].amount;
                    this.CreativeModePhysicalItems[i].itemName = MyStringId.GetOrCompute(definition.CreativeModePhysicalItems[i].itemName);
                    this.CreativeModePhysicalItems[i].itemType = MyStringId.GetOrCompute(definition.CreativeModePhysicalItems[i].itemType);
                }
            }
            if ((definition.SurvivalModePhysicalItems != null) && (definition.SurvivalModePhysicalItems.Length != 0))
            {
                this.SurvivalModePhysicalItems = new StartingPhysicalItem[definition.SurvivalModePhysicalItems.Length];
                for (int i = 0; i < definition.SurvivalModePhysicalItems.Length; i++)
                {
                    this.SurvivalModePhysicalItems[i].amount   = (MyFixedPoint)definition.SurvivalModePhysicalItems[i].amount;
                    this.SurvivalModePhysicalItems[i].itemName = MyStringId.GetOrCompute(definition.SurvivalModePhysicalItems[i].itemName);
                    this.SurvivalModePhysicalItems[i].itemType = MyStringId.GetOrCompute(definition.SurvivalModePhysicalItems[i].itemType);
                }
            }
            if ((definition.CreativeModeAmmoItems != null) && (definition.CreativeModeAmmoItems.Length != 0))
            {
                this.CreativeModeAmmoItems = new StartingItem[definition.CreativeModeAmmoItems.Length];
                for (int i = 0; i < definition.CreativeModeAmmoItems.Length; i++)
                {
                    this.CreativeModeAmmoItems[i].amount   = (MyFixedPoint)definition.CreativeModeAmmoItems[i].amount;
                    this.CreativeModeAmmoItems[i].itemName = MyStringId.GetOrCompute(definition.CreativeModeAmmoItems[i].itemName);
                }
            }
            if ((definition.SurvivalModeAmmoItems != null) && (definition.SurvivalModeAmmoItems.Length != 0))
            {
                this.SurvivalModeAmmoItems = new StartingItem[definition.SurvivalModeAmmoItems.Length];
                for (int i = 0; i < definition.SurvivalModeAmmoItems.Length; i++)
                {
                    this.SurvivalModeAmmoItems[i].amount   = (MyFixedPoint)definition.SurvivalModeAmmoItems[i].amount;
                    this.SurvivalModeAmmoItems[i].itemName = MyStringId.GetOrCompute(definition.SurvivalModeAmmoItems[i].itemName);
                }
            }
            this.CreativeInventoryItems = definition.CreativeInventoryItems;
            this.SurvivalInventoryItems = definition.SurvivalInventoryItems;
            SerializableBoundingBoxD?worldBoundaries = definition.WorldBoundaries;

            if (worldBoundaries != null)
            {
                nullable1 = new BoundingBoxD?(worldBoundaries.GetValueOrDefault());
            }
            else
            {
                nullable1 = null;
            }
            this.WorldBoundaries = nullable1;
        }