Ejemplo n.º 1
0
        //public StackTrace CreationStack = new StackTrace(true);

        /// <summary>
        /// Initializes a new instance of the <see cref="MyEntity"/> class.
        /// </summary>
        protected MyEntity(bool initComponents = true)
        {
            Components = new MyComponentContainer(this);
            Components.ComponentAdded   += Components_ComponentAdded;
            Components.ComponentRemoved += Components_ComponentRemoved;

            this.Flags = EntityFlags.Visible |
                         EntityFlags.SkipIfTooSmall |
                         EntityFlags.Save |
                         EntityFlags.NeedsResolveCastShadow |
                         EntityFlags.InvalidateOnMove;


            if (initComponents)
            {
                this.m_hudParams  = new List <MyHudEntityParams>(1);
                this.Hierarchy    = new MyHierarchyComponentBase();
                this.GameLogic    = new MyNullGameLogicComponent();
                this.PositionComp = new MyPositionComponent();

                PositionComp.LocalMatrix = Matrix.Identity;

                this.Render = new MyRenderComponent();
                AddDebugRenderComponent(new MyDebugRenderComponent(this));
            }
        }
Ejemplo n.º 2
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_syncObject              = container.Get <MySyncComponentBase>();
     m_physics                 = container.Get <MyPhysicsComponentBase>();
     m_hierarchy               = container.Get <MyHierarchyComponentBase>();
     container.ComponentAdded += container_ComponentAdded;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_syncObject = container.Get<MySyncComponentBase>();
     m_physics = container.Get<MyPhysicsComponentBase>();
     m_hierarchy = container.Get<MyHierarchyComponentBase>();
     container.ComponentAdded += container_ComponentAdded;
 }
Ejemplo n.º 4
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_cubeBlock = Entity as MyCubeBlock;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_invetoryItem = Entity as MyBaseInventoryItemEntity;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_reflectorLight = Entity as MyReflectorLight;
 }
Ejemplo n.º 7
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     MyPlaceAreas.AddPlaceArea(this);
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_thrust = Entity as MyThrust;
 }
Ejemplo n.º 9
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_debris = container.Entity as MyDebrisBase;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_floatingObject = Entity as MyFloatingObject;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_floatingObject = Entity as MyFloatingObject;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_sensor = Entity as MySensorBase;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_gatlingGun = Entity as MySmallGatlingGun;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_reflectorLight = Entity as MyReflectorLight;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_sensor = Entity as MySensorBase;
 }
Ejemplo n.º 17
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_entity = container.Entity as MyEntity;
 }
Ejemplo n.º 18
0
 public override void OnRemovedFromContainer(MyComponentContainer container)
 {
     MyPlaceAreas.RemovePlaceArea(this);
     base.OnRemovedFromContainer(container);
 }
Ejemplo n.º 19
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_character = Entity as MyCharacter;
 }
Ejemplo n.º 20
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_voxelMap = Entity as IMyVoxelDrawable;
 }
Ejemplo n.º 21
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_entity = container.Entity as MyEntity;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_gatlingGun = Entity as MySmallGatlingGun;
 }
Ejemplo n.º 23
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_tool = Entity as MyEngineerToolBase;
 }
Ejemplo n.º 24
0
 public static void InitComponents(this MyComponentContainer container, MyObjectBuilderType type, MyStringHash subtypeName, MyObjectBuilder_ComponentContainer builder)
 {
     if (MyDefinitionManager.Static != null)
     {
         MyContainerDefinition definition = null;
         bool flag = ReferenceEquals(builder, null);
         if (TryGetContainerDefinition(type, subtypeName, out definition))
         {
             container.Init(definition);
             if (definition.DefaultComponents != null)
             {
                 foreach (MyContainerDefinition.DefaultComponent component in definition.DefaultComponents)
                 {
                     MyComponentDefinitionBase     componentDefinition = null;
                     MyObjectBuilder_ComponentBase base3 = FindComponentBuilder(component, builder);
                     bool            flag2 = base3 != null;
                     Type            type2 = null;
                     MyComponentBase base4 = null;
                     MyStringHash    hash  = subtypeName;
                     if (component.SubtypeId != null)
                     {
                         hash = component.SubtypeId.Value;
                     }
                     if (TryGetComponentDefinition(component.BuilderType, hash, out componentDefinition))
                     {
                         base4 = MyComponentFactory.CreateInstanceByTypeId(componentDefinition.Id.TypeId);
                         base4.Init(componentDefinition);
                     }
                     else if (component.IsValid())
                     {
                         base4 = component.BuilderType.IsNull ? MyComponentFactory.CreateInstanceByType(component.InstanceType) : MyComponentFactory.CreateInstanceByTypeId(component.BuilderType);
                     }
                     if (base4 != null)
                     {
                         Type componentType = MyComponentTypeFactory.GetComponentType(base4.GetType());
                         if (componentType != null)
                         {
                             type2 = componentType;
                         }
                         else
                         {
                             MyComponentDefinitionBase base1 = componentDefinition;
                         }
                     }
                     if ((type2 == null) && (base4 != null))
                     {
                         type2 = base4.GetType();
                     }
                     if (((base4 != null) && (type2 != null)) && ((flag | flag2) || component.ForceCreate))
                     {
                         if (base3 != null)
                         {
                             base4.Deserialize(base3);
                         }
                         container.Add(type2, base4);
                     }
                 }
             }
         }
         container.Deserialize(builder);
     }
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_turretBase = Entity as MyLargeTurretBase;
 }
Ejemplo n.º 26
0
 public override void OnRemovedFromContainer(MyComponentContainer container)
 {
     MyPlaceAreas.RemovePlaceArea(this);
     base.OnRemovedFromContainer(container);
 }
Ejemplo n.º 27
0
 public override void OnRemovedFromContainer(MyComponentContainer container)
 {
     base.OnRemovedFromContainer(container);
     container.ComponentAdded -= container_ComponentAdded;
 }
Ejemplo n.º 28
0
 public override void OnRemovedFromContainer(MyComponentContainer container)
 {
     base.OnRemovedFromContainer(container);
     container.ComponentAdded -= container_ComponentAdded;
     container.ComponentRemoved -= container_ComponentRemoved;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_grid = Entity as MyCubeGrid;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
 }
Ejemplo n.º 31
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_rifleGun = Entity as MyAutomaticRifleGun;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_tool = Entity as MyEngineerToolBase;
 }
Ejemplo n.º 33
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_debris = container.Entity as MyDebrisBase;
 }
Ejemplo n.º 34
0
        //public StackTrace CreationStack = new StackTrace(true);

        /// <summary>
        /// Initializes a new instance of the <see cref="MyEntity"/> class.
        /// </summary>
        protected MyEntity(bool initComponents = true)
        {
            Components = new MyComponentContainer(this);
            Components.ComponentAdded += Components_ComponentAdded;
            Components.ComponentRemoved += Components_ComponentRemoved;

            this.Flags = EntityFlags.Visible |
                         EntityFlags.SkipIfTooSmall |
                         EntityFlags.Save |
                         EntityFlags.NeedsResolveCastShadow |
                         EntityFlags.InvalidateOnMove;


            if (initComponents)
            {
                this.m_hudParams = new List<MyHudEntityParams>(1);
                this.Hierarchy = new MyHierarchyComponentBase();
                this.GameLogic = new MyNullGameLogicComponent();
                this.PositionComp = new MyPositionComponent();

                PositionComp.LocalMatrix = Matrix.Identity;

                this.Render = new MyRenderComponent();
                AddDebugRenderComponent(new MyDebugRenderComponent(this));
            }
        }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_voxelMap = Entity as IMyVoxelDrawable;
 }
        /// <summary>
        /// Tries to retrieve entity definition of the entity owning this container, check if the definition has some DefaultComponents,
        /// tries to retrieve these components definitions, create these components instances and add them
        ///
        /// TODO: This should be ideally a behavior of the MyEntityComponentContainer when it is initialized (deserialized).. or by the factory, for now, this is an extension method
        /// </summary>
        public static void InitComponents(this MyComponentContainer container, MyObjectBuilderType type, MyStringHash subtypeName, MyObjectBuilder_ComponentContainer builder)
        {
            if (MyDefinitionManager.Static != null)
            {
                MyContainerDefinition definition = null;

                bool IsFirstInit = builder == null;

                if (TryGetContainerDefinition(type, subtypeName, out definition))
                {
                    container.Init(definition);

                    if (definition.DefaultComponents != null)
                    {
                        foreach (var component in definition.DefaultComponents)
                        {
                            MyComponentDefinitionBase     componentDefinition = null;
                            MyObjectBuilder_ComponentBase componentBuilder    = FindComponentBuilder(component, builder);
                            bool            IsComponentSerialized             = componentBuilder != null;
                            Type            componentType     = null;
                            MyComponentBase componentInstance = null;

                            var componentSubtype = subtypeName;
                            if (component.SubtypeId.HasValue)
                            {
                                componentSubtype = component.SubtypeId.Value;
                            }

                            // Create component instance
                            if (TryGetComponentDefinition(component.BuilderType, componentSubtype, out componentDefinition))
                            {
                                componentInstance = MyComponentFactory.CreateInstanceByTypeId(componentDefinition.Id.TypeId);
                                componentInstance.Init(componentDefinition);
                            }
                            else if (component.IsValid())
                            {
                                if (!component.BuilderType.IsNull)
                                {
                                    componentInstance = MyComponentFactory.CreateInstanceByTypeId(component.BuilderType);
                                }
                                else
                                {
                                    componentInstance = MyComponentFactory.CreateInstanceByType(component.InstanceType);
                                }
                            }

                            // Check component type from attributes.
                            if (componentInstance != null)
                            {
                                var componentTypeFromAttr = MyComponentTypeFactory.GetComponentType(componentInstance.GetType());
                                if (componentTypeFromAttr != null)
                                {
                                    componentType = componentTypeFromAttr;
                                }
                                else
                                {
                                    if (componentDefinition != null)
                                    {
                                        System.Diagnostics.Debug.Fail("Unknown component type - component type attribute not specified for component class: " + componentInstance.GetType());
                                    }
                                }
                            }

                            //TODO: this should be avoided! Component type MUST be set via MyComponentType attribute.
                            if (componentType == null && componentInstance != null)
                            {
                                componentType = componentInstance.GetType();
                            }

                            // If everything passed, go on..
                            if (componentInstance != null && componentType != null)
                            {
                                bool componentShouldBeAdded = IsFirstInit || IsComponentSerialized || component.ForceCreate;

                                if (componentShouldBeAdded)
                                {
                                    if (componentBuilder != null)
                                    {
                                        componentInstance.Deserialize(componentBuilder);
                                    }

                                    // Add only fully initialized component..
                                    container.Add(componentType, componentInstance);
                                }
                            }
                            else
                            {
                                System.Diagnostics.Debug.Fail("Component instance wasn't created or it's base type couldn't been determined!");
                            }
                        }
                    }
                    else
                    {
                        System.Diagnostics.Debug.Fail("Got definition for container, but DefaultComponents is null!");
                    }
                }

                // This may rewrite already once deserialized data, but will also add missing components in definition
                container.Deserialize(builder);
            }
            else
            {
                System.Diagnostics.Debug.Fail("Trying to init enabled components on entity, but definition manager is null");
            }
        }
Ejemplo n.º 37
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_grid = Entity as MyCubeGrid;
 }
Ejemplo n.º 38
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     MyPlaceAreas.AddPlaceArea(this);
 }
Ejemplo n.º 39
0
 public virtual void OnAddedToContainer(MyComponentContainer container)
 {
     CurrentContainer = container;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_cubeBlock = Entity as MyCubeBlock;
 }
Ejemplo n.º 41
0
        public virtual void OnRemovedFromContainer(MyComponentContainer container)
        {

            CurrentContainer = null;
        }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_character = Entity as MyCharacter;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_thrust = Entity as MyThrust;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_rifleGun = Entity as MyAutomaticRifleGun;
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_invetoryItem = Entity as MyBaseInventoryItemEntity;
 }
Ejemplo n.º 46
0
 public void AddComponent(MyComponentContainer container, MyComponentBase component)
 {
     m_components.Add(component);
 }
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_turretBase = Entity as MyLargeTurretBase;
 }