Пример #1
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = builder as MyObjectBuilder_UpdateTrigger;

            m_size = ob.Size;
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_CraftingComponentBlock;

            m_insertedItemUseLevel = ob.InsertedItemUseLevel;

            foreach (var item in ob.InsertedItems)
            {
                if (item.Amount <= 0)
                {
                    // Remove all items with 0 amount when loading...
                    System.Diagnostics.Debug.Fail(string.Format("Removing item with invalid amount: {0}x '{1}'. This is safe to ignore.", item.Amount, item.PhysicalContent.GetObjectId()));
                    continue;
                }

                if (item.PhysicalContent != null && (m_currentInsertedItemsCount + (float)item.Amount <= m_maxInsertedItems))
                {
                    MyPhysicalInventoryItem inventoryItem = new MyPhysicalInventoryItem(item);
                    m_currentInsertedItemsCount += (float)inventoryItem.Amount;

                    m_insertedItems.Add(inventoryItem);
                }
                else
                {
                    System.Diagnostics.Debug.Fail("Trying to add operating item to crafting component but it can't fit there or doesn't have content!");
                }
            }

            m_lastUpdateTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;

            UpdateOperatingLevel();
        }
Пример #3
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = (MyObjectBuilder_AreaTrigger)builder;

            Name = ob.Name;
        }
Пример #4
0
        public MyObjectBuilder_ComponentContainer Serialize(bool copy = false)
        {
            var tmpSerializedComponents = new List <KeyValuePair <Type, MyComponentBase> >(8);

            tmpSerializedComponents.Clear();
            foreach (var component in m_components)
            {
                if (component.Value.IsSerialized())
                {
                    tmpSerializedComponents.Add(component);
                }
            }

            if (tmpSerializedComponents.Count == 0)
            {
                return(null);
            }

            var builder = new MyObjectBuilder_ComponentContainer();

            foreach (var component in tmpSerializedComponents)
            {
                MyObjectBuilder_ComponentBase componentBuilder = component.Value.Serialize(copy);
                if (componentBuilder != null)
                {
                    var data = new MyObjectBuilder_ComponentContainer.ComponentData();
                    data.TypeId    = component.Key.Name;
                    data.Component = componentBuilder;
                    builder.Components.Add(data);
                }
            }

            tmpSerializedComponents.Clear();
            return(builder);
        }
Пример #5
0
        public override MyObjectBuilder_ComponentBase Serialize(bool copy = false)
        {
            MyObjectBuilder_ComponentBase          base2     = base.Serialize(false);
            MyObjectBuilder_CharacterStatComponent component = base2 as MyObjectBuilder_CharacterStatComponent;

            if (component == null)
            {
                return(base2);
            }
            component.Stats       = null;
            component.ScriptNames = null;
            if ((this.m_stats != null) && (this.m_stats.Count > 0))
            {
                component.Stats = new MyObjectBuilder_EntityStat[this.m_stats.Count];
                int index = 0;
                foreach (KeyValuePair <MyStringHash, MyEntityStat> pair in this.m_stats)
                {
                    index++;
                    component.Stats[index] = pair.Value.GetObjectBuilder();
                }
            }
            if ((this.m_scripts != null) && (this.m_scripts.Count > 0))
            {
                component.ScriptNames = new string[this.m_scripts.Count];
                int index = 0;
                foreach (MyStatLogic logic in this.m_scripts)
                {
                    index++;
                    component.ScriptNames[index] = logic.Name;
                }
            }
            return(component);
        }
Пример #6
0
        public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
        {
            var builder = baseBuilder as MyObjectBuilder_PhysicsComponentBase;

            LinearVelocity  = builder.LinearVelocity;
            AngularVelocity = builder.AngularVelocity;
        }
Пример #7
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_InventoryBase;
            InventoryId = MyStringHash.GetOrCompute(ob.InventoryId ?? "Inventory");
        }
Пример #8
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            MyObjectBuilder_UpdateTrigger trigger = builder as MyObjectBuilder_UpdateTrigger;

            this.m_size = trigger.Size;
        }
Пример #9
0
        public override void Deserialize(MyObjectBuilder_ComponentBase objectBuilder)
        {
            var builder = objectBuilder as MyObjectBuilder_CharacterStatComponent;

            if (builder != null)
            {
                if (builder.Stats != null)
                {
                    foreach (var stat in builder.Stats)
                    {
                        MyEntityStatDefinition statDefinition = null;
                        if (MyDefinitionManager.Static.TryGetDefinition <MyEntityStatDefinition>(new MyDefinitionId(stat.TypeId, stat.SubtypeId), out statDefinition) &&
                            statDefinition.Enabled &&
                            ((statDefinition.EnabledInCreative && MySession.Static.CreativeMode) ||
                             (statDefinition.AvailableInSurvival && MySession.Static.SurvivalMode)))
                        {
                            AddStat(stat.SubtypeId, stat);
                        }
                    }
                }

                if (builder.ScriptNames != null && Sync.IsServer)
                {
                    foreach (var scriptName in builder.ScriptNames)
                    {
                        InitScript(scriptName);
                    }
                }
            }

            base.Deserialize(objectBuilder);
        }
        public MyObjectBuilder_ComponentContainer Serialize()
        {
            var builder        = new MyObjectBuilder_ComponentContainer();
            var componentsData = new List <MyObjectBuilder_ComponentContainer.ComponentData>(m_components.Count);
            int i = 0;

            foreach (var component in m_components)
            {
                MyObjectBuilder_ComponentBase componentBuilder = null;
                if (component.Value.IsSerialized())
                {
                    componentBuilder = component.Value.Serialize();
                }
                if (componentBuilder != null)
                {
                    var data = new MyObjectBuilder_ComponentContainer.ComponentData();
                    data.TypeId    = component.Key.Name;
                    data.Component = componentBuilder;
                    componentsData.Add(data);
                    i++;
                }
            }
            if (componentsData.Count > 0)
            {
                builder.Components = componentsData.ToArray();
            }
            return(builder);
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_CraftingComponentInteractive;

            // TODO: Initialization
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_CraftingComponentBasic;

            // TODO: Initialization
        }
Пример #13
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_InventoryBase;

            InventoryId = MyStringHash.GetOrCompute(ob.InventoryId ?? "Inventory");
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_EntityOwnershipComponent;

            m_ownerId = ob.OnwerId;
            m_shareMode = ob.ShareMode;
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            var serdict = ((MyObjectBuilder_ModStorageComponent)builder).Storage;

            if (serdict != null && serdict.Dictionary != null)
            {
                m_storageData = new Dictionary <Guid, string>(serdict.Dictionary);
            }
        }
Пример #16
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_EntityOwnershipComponent;

            m_ownerId   = ob.OwnerId;
            m_shareMode = ob.ShareMode;
        }
Пример #17
0
        public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
        {
            MyObjectBuilder_ContainerDropComponent component = baseBuilder as MyObjectBuilder_ContainerDropComponent;

            this.Competetive    = component.Competetive;
            this.GPSName        = component.GPSName;
            this.Owner          = component.Owner;
            this.m_playingSound = component.PlayingSound;
            this.m_playSound    = !string.IsNullOrEmpty(this.m_playingSound);
        }
Пример #18
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            MyObjectBuilder_TriggerBase base2 = builder as MyObjectBuilder_TriggerBase;

            if (base2 != null)
            {
                this.m_AABB             = (BoundingBoxD)base2.AABB;
                this.m_boundingSphere   = (BoundingSphereD)base2.BoundingSphere;
                this.m_triggerType      = (base2.Type == -1) ? TriggerType.AABB : ((TriggerType)base2.Type);
                this.DefaultTranslation = (Vector3D)base2.Offset;
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            if (Block != null)
            {
                Init(builder);
            }
            else
            {
                m_obFracture = builder;
            }
        }
        public override void OnAddedToContainer()
        {
            base.OnAddedToContainer();
            Block = (Entity as MyCubeBlock).SlimBlock;
            Block.FatBlock.CheckConnectionAllowed = true;

            if (m_obFracture != null)
            {
                Init(m_obFracture);

                m_obFracture = null;
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = builder as MyObjectBuilder_TriggerBase;

            if (ob != null)
            {
                m_AABB             = ob.AABB;
                m_boundingSphere   = ob.BoundingSphere;
                m_triggerType      = ob.Type == -1 ? TriggerType.AABB : (TriggerType)ob.Type;
                DefaultTranslation = ob.Offset;
            }
        }
        public override void OnAddedToContainer()
        {
            base.OnAddedToContainer();
            Block = (Entity as MyCubeBlock).SlimBlock;
            Block.FatBlock.CheckConnectionAllowed = true;

            if (m_obFracture != null)
            {
                Init(m_obFracture);

                m_obFracture = null;
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            if (Block != null)
            {
                Init(builder);
            }
            else
            {
                m_obFracture = builder;
            }
        }
Пример #24
0
        public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
        {
            var builder = baseBuilder as MyObjectBuilder_TimerComponent;

            Repeat              = builder.Repeat;
            TimeToEvent         = builder.TimeToEvent;
            m_setTimeMin        = builder.SetTimeMinutes;
            TimerEnabled        = builder.TimerEnabled;
            RemoveEntityOnTimer = builder.RemoveEntityOnTimer;
            if (RemoveEntityOnTimer)
            {
                EventToTrigger = GetRemoveEntityOnTimerEvent();
            }
        }
Пример #25
0
        public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
        {
            MyObjectBuilder_TimerComponent component = baseBuilder as MyObjectBuilder_TimerComponent;

            this.Repeat              = component.Repeat;
            this.TimeToEvent         = component.TimeToEvent;
            this.m_setTimeMin        = component.SetTimeMinutes;
            this.TimerEnabled        = component.TimerEnabled;
            this.RemoveEntityOnTimer = component.RemoveEntityOnTimer;
            if (this.RemoveEntityOnTimer && Sync.IsServer)
            {
                this.EventToTrigger = GetRemoveEntityOnTimerEvent();
            }
        }
Пример #26
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            MyObjectBuilder_InventoryAggregate aggregate = builder as MyObjectBuilder_InventoryAggregate;

            if ((aggregate != null) && (aggregate.Inventories != null))
            {
                foreach (MyObjectBuilder_InventoryBase base2 in aggregate.Inventories)
                {
                    MyComponentBase component = MyComponentFactory.CreateInstanceByTypeId(base2.TypeId);
                    component.Deserialize(base2);
                    this.AddComponent(component);
                }
            }
        }
Пример #27
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_InventoryAggregate;

            if (ob != null && ob.Inventories != null)
            {
                foreach (var obInv in ob.Inventories)
                {
                    var comp = MyComponentFactory.CreateInstance(obInv.GetType());
                    comp.Deserialize(obInv);
                    this.AddComponent(comp);
                }
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_TriggerAggregate;

            if (ob != null && ob.AreaTriggers != null)
            {
                foreach (var obTrigger in ob.AreaTriggers)
                {
                    var comp = MyComponentFactory.CreateInstanceByTypeId(obTrigger.TypeId);
                    comp.Deserialize(obTrigger);
                    this.AddComponent(comp);
                }
            }
        }
        private void Init(MyObjectBuilder_ComponentBase builder)
        {
            ProfilerShort.Begin("FractureComponent.Deserialize");

            var ob = builder as MyObjectBuilder_FractureComponentCubeBlock;

            if (ob.Shapes.Count == 0)
            {
                ProfilerShort.End();
                Debug.Fail("No relevant shape was found for fractured block. It was probably reexported and names changed. Block definition: " + Block.BlockDefinition.Id.ToString());
                throw new Exception("No relevant shape was found for fractured block. It was probably reexported and names changed. Block definition: " + Block.BlockDefinition.Id.ToString());
            }

            RecreateShape(ob.Shapes);

            ProfilerShort.End();
        }
        public override void OnAddedToContainer()
        {
            base.OnAddedToContainer();
            Block = (Entity as MyCubeBlock).SlimBlock;
            Block.FatBlock.CheckConnectionAllowed = true;

            var blockOnPosition = Block.CubeGrid.GetCubeBlock(Block.Position);
            if (blockOnPosition != null)
                blockOnPosition.FatBlock.CheckConnectionAllowed = true;

            if (m_obFracture != null)
            {
                Init(m_obFracture);

                m_obFracture = null;
            }
        }
Пример #31
0
        public static MyObjectBuilder_ComponentBase FindComponentBuilder(MyContainerDefinition.DefaultComponent component, MyObjectBuilder_ComponentContainer builder)
        {
            MyObjectBuilder_ComponentBase base2 = null;

            if ((builder != null) && component.IsValid())
            {
                null;
                if (!component.BuilderType.IsNull)
                {
                    MyObjectBuilder_ComponentContainer.ComponentData data = builder.Components.Find(x => x.Component.TypeId == component.BuilderType);
                    if (data != null)
                    {
                        base2 = data.Component;
                    }
                }
            }
            return(base2);
        }
Пример #32
0
        public override void Deserialize(MyObjectBuilder_ComponentBase objectBuilder)
        {
            var builder = objectBuilder as MyObjectBuilder_CharacterStatComponent;

            // Because of switching helmet on/off
            foreach (var script in m_scripts)
            {
                script.Close();
            }
            m_scripts.Clear();

            if (builder != null)
            {
                if (builder.Stats != null)
                {
                    foreach (var stat in builder.Stats)
                    {
                        MyEntityStatDefinition statDefinition = null;
                        if (MyDefinitionManager.Static.TryGetDefinition <MyEntityStatDefinition>(new MyDefinitionId(stat.TypeId, stat.SubtypeId), out statDefinition) &&
                            statDefinition.Enabled &&
                            ((statDefinition.EnabledInCreative && MySession.Static.CreativeMode) ||
                             (statDefinition.AvailableInSurvival && MySession.Static.SurvivalMode)))
                        {
                            AddStat(MyStringHash.GetOrCompute(statDefinition.Name), stat, true);
                        }
                    }
                }

                if (builder.ScriptNames != null && Sync.IsServer)
                {
                    // Should fix broken saves
                    // I assume that StatComponent should hold only once instance per script
                    builder.ScriptNames = builder.ScriptNames.Distinct().ToArray();

                    foreach (var scriptName in builder.ScriptNames)
                    {
                        InitScript(scriptName);
                    }
                }
            }

            base.Deserialize(objectBuilder);
        }
        public override void OnAddedToContainer()
        {
            base.OnAddedToContainer();
            Block = (Entity as MyCubeBlock).SlimBlock;
            Block.FatBlock.CheckConnectionAllowed = true;

            var blockOnPosition = Block.CubeGrid.GetCubeBlock(Block.Position);

            if (blockOnPosition != null)
            {
                blockOnPosition.FatBlock.CheckConnectionAllowed = true;
            }

            if (m_obFracture != null)
            {
                Init(m_obFracture);

                m_obFracture = null;
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = builder as MyObjectBuilder_HierarchyComponentBase;

            if (ob != null)
            {
                m_deserializedEntities.Clear();
                foreach (var child in ob.Children)
                {
                    var childEntity = MyEntity.MyEntitiesCreateFromObjectBuilderExtCallback(child, true);
                    m_deserializedEntities.Add(childEntity);
                }

                foreach (var deserializedEntity in m_deserializedEntities)
                {
                    AddChild(deserializedEntity, true, false);
                }
            }
        }
        public static MyObjectBuilder_ComponentBase FindComponentBuilder(MyContainerDefinition.DefaultComponent component, MyObjectBuilder_ComponentContainer builder)
        {
            MyObjectBuilder_ComponentBase componentBuilder = null;

            if (builder != null && component.IsValid())
            {
                MyObjectBuilderType componentObType = null;

                if (!component.BuilderType.IsNull)
                {
                    var componentData = builder.Components.Find(x => x.Component.TypeId == component.BuilderType);

                    if (componentData != null)
                    {
                        componentBuilder = componentData.Component;
                    }
                }
            }

            return(componentBuilder);
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            var ob = builder as MyObjectBuilder_PlanetEnvironmentComponent;

            if (ob == null)
            {
                return;
            }

            m_providerData = ob.DataProviders;

            if (ob.SectorObstructions != null)
            {
                CollisionCheckEnabled  = true;
                m_obstructorsPerSector = new Dictionary <long, List <MyOrientedBoundingBoxD> >();

                foreach (var sector in ob.SectorObstructions)
                {
                    m_obstructorsPerSector[sector.SectorId] = sector.ObstructingBoxes;
                }
            }
        }
Пример #37
0
 public override void Deserialize(MyObjectBuilder_ComponentBase builder)
 {
     var ob = builder as MyObjectBuilder_Inventory;
     Init(ob);
 }
 public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
 {
     var builder = baseBuilder as MyObjectBuilder_PhysicsComponentBase;
     LinearVelocity = builder.LinearVelocity;
     AngularVelocity = builder.AngularVelocity;
 }
Пример #39
0
 public override void Deserialize(MyObjectBuilder_ComponentBase baseBuilder)
 {
     var builder = baseBuilder as MyObjectBuilder_TimerComponent;
     Repeat = builder.Repeat;
     TimeToEvent = builder.TimeToEvent;
     m_setTimeMin = builder.SetTimeMinutes;
     TimerEnabled = builder.TimerEnabled;
     RemoveEntityOnTimer = builder.RemoveEntityOnTimer;
     if (RemoveEntityOnTimer)
     {
         EventToTrigger = (MyEntityComponentContainer container) => { container.Entity.Close(); };
     }
 }
Пример #40
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = builder as MyObjectBuilder_TriggerBase;

            if (ob != null)
            {
                m_AABB = ob.AABB;
                m_boundingSphere = ob.BoundingSphere;
                m_triggerType = ob.Type == -1 ? TriggerType.AABB : (TriggerType) ob.Type;
                DefaultTranslation = ob.Offset;
            }
        }
 public override void Deserialize(MyObjectBuilder_ComponentBase builder)
 {
     base.Deserialize(builder);
     var ob = builder as MyObjectBuilder_UpdateTrigger;
     m_size = ob.Size;
 }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = (MyObjectBuilder_AreaTrigger) builder;

            Name = ob.Name;
        }
		public override void Deserialize(MyObjectBuilder_ComponentBase objectBuilder)
		{
			var builder = objectBuilder as MyObjectBuilder_CharacterStatComponent;

            // Because of switching helmet on/off
            foreach (var script in m_scripts)
            {
                script.Close();
            }
            m_scripts.Clear();

			if (builder != null)
			{
				if (builder.Stats != null)
				{
					foreach (var stat in builder.Stats)
					{
						MyEntityStatDefinition statDefinition = null;
						if(MyDefinitionManager.Static.TryGetDefinition<MyEntityStatDefinition>(new MyDefinitionId(stat.TypeId, stat.SubtypeId), out statDefinition)
							&& statDefinition.Enabled
							&& ((statDefinition.EnabledInCreative && MySession.Static.CreativeMode)
							|| (statDefinition.AvailableInSurvival && MySession.Static.SurvivalMode)))
							AddStat(MyStringHash.GetOrCompute(statDefinition.Name), stat, true);
					}
				}

				if (builder.ScriptNames != null && Sync.IsServer)
				{
                    // Should fix broken saves
                    // I assume that StatComponent should hold only once instance per script
                    builder.ScriptNames = builder.ScriptNames.Distinct().ToArray();

					foreach (var scriptName in builder.ScriptNames)
					{
						InitScript(scriptName);
					}
				}
			}

			base.Deserialize(objectBuilder);
		}
Пример #44
0
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_TriggerAggregate;

            if (ob != null && ob.AreaTriggers != null)
            {
                foreach (var obTrigger in ob.AreaTriggers)
                {
                    var comp = MyComponentFactory.CreateInstanceByTypeId(obTrigger.TypeId);
                    comp.Deserialize(obTrigger);
                    this.AddComponent(comp);
                }
            }
        }
        private void Init(MyObjectBuilder_ComponentBase builder)
        {
            ProfilerShort.Begin("FractureComponent.Deserialize");

            var ob = builder as MyObjectBuilder_FractureComponentCubeBlock;
            if (ob.Shapes.Count == 0)
            {
                ProfilerShort.End();
                Debug.Fail("No relevant shape was found for fractured block. It was probably reexported and names changed. Block definition: " + Block.BlockDefinition.Id.ToString());
                throw new Exception("No relevant shape was found for fractured block. It was probably reexported and names changed. Block definition: " + Block.BlockDefinition.Id.ToString());
            }

            RecreateShape(ob.Shapes);

            ProfilerShort.End();
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_CraftingComponentBlock;
            
            m_insertedItemUseLevel = ob.InsertedItemUseLevel;

            foreach (var item in ob.InsertedItems)
            {
                if (item.Amount <= 0)
                {
                    // Remove all items with 0 amount when loading...
                    System.Diagnostics.Debug.Fail(string.Format("Removing item with invalid amount: {0}x '{1}'. This is safe to ignore.", item.Amount, item.PhysicalContent.GetObjectId()));
                    continue;
                }

                if (item.PhysicalContent != null && (m_currentInsertedItemsCount + (float)item.Amount <= m_maxInsertedItems))
                {
                    MyPhysicalInventoryItem inventoryItem = new MyPhysicalInventoryItem(item);
                    m_currentInsertedItemsCount += (float)inventoryItem.Amount;

                    m_insertedItems.Add(inventoryItem);
                }
                else
                {
                    System.Diagnostics.Debug.Fail("Trying to add operating item to crafting component but it can't fit there or doesn't have content!");
                }
            }
            
            m_lastUpdateTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;

            UpdateOperatingLevel();
        }
Пример #47
0
		public override void Deserialize(MyObjectBuilder_ComponentBase objectBuilder)
		{
			var builder = objectBuilder as MyObjectBuilder_CharacterStatComponent;
			if (builder != null)
			{
				if (builder.Stats != null)
				{
					foreach (var stat in builder.Stats)
					{
						MyEntityStatDefinition statDefinition = null;
						if(MyDefinitionManager.Static.TryGetDefinition<MyEntityStatDefinition>(new MyDefinitionId(stat.TypeId, stat.SubtypeId), out statDefinition)
							&& statDefinition.Enabled
							&& ((statDefinition.EnabledInCreative && MySession.Static.CreativeMode)
							|| (statDefinition.AvailableInSurvival && MySession.Static.SurvivalMode)))
							AddStat(stat.SubtypeId, stat);
					}
				}

				if (builder.ScriptNames != null && Sync.IsServer)
				{
					foreach (var scriptName in builder.ScriptNames)
					{
						InitScript(scriptName);
					}
				}
			}

			base.Deserialize(objectBuilder);
		}
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);

            var ob = builder as MyObjectBuilder_InventoryAggregate;

            if (ob != null && ob.Inventories != null)
            {
                foreach (var obInv in ob.Inventories)
                {
                    var comp = MyComponentFactory.CreateInstance(obInv.GetType());
                    comp.Deserialize(obInv);
                    this.AddComponent(comp);
                }
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            var ob = builder as MyObjectBuilder_PlanetEnvironmentComponent;

            if (ob == null)
                return;

            m_providerData = ob.DataProviders;

            if (ob.SectorObstructions != null)
            {
                CollisionCheckEnabled = true;
                m_obstructorsPerSector = new Dictionary<long, List<MyOrientedBoundingBoxD>>();

                foreach (var sector in ob.SectorObstructions)
                {
                    m_obstructorsPerSector[sector.SectorId] = sector.ObstructingBoxes;
                }
            }
        }
        public override void Deserialize(MyObjectBuilder_ComponentBase builder)
        {
            base.Deserialize(builder);
            var ob = builder as MyObjectBuilder_HierarchyComponentBase;

            if (ob != null)
            {
                m_deserializedEntities.Clear();
                foreach (var child in ob.Children)
                {
                    var childEntity = MyEntity.MyEntitiesCreateFromObjectBuilderExtCallback(child, true);
                    m_deserializedEntities.Add(childEntity);
                }

                foreach (var deserializedEntity in m_deserializedEntities)
                {
                    AddChild(deserializedEntity, true, false);
                }
            }
        }