Example #1
0
        private XmlElement GenerateTransformXml(Cv_Transform t, XmlDocument doc)
        {
            var transform = doc.CreateElement(Cv_EntityComponent.GetComponentName <Cv_TransformComponent>());

            var positionNode = doc.CreateElement("Position");

            positionNode.SetAttribute("x", t.Position.X.ToString(CultureInfo.InvariantCulture));
            positionNode.SetAttribute("y", t.Position.Y.ToString(CultureInfo.InvariantCulture));
            positionNode.SetAttribute("z", t.Position.Z.ToString(CultureInfo.InvariantCulture));

            var rotationNode = doc.CreateElement("Rotation");

            rotationNode.SetAttribute("radians", t.Rotation.ToString(CultureInfo.InvariantCulture));

            var scaleNode = doc.CreateElement("Scale");

            scaleNode.SetAttribute("x", t.Scale.X.ToString(CultureInfo.InvariantCulture));
            scaleNode.SetAttribute("y", t.Scale.Y.ToString(CultureInfo.InvariantCulture));

            var originNode = doc.CreateElement("Origin");

            originNode.SetAttribute("x", t.Origin.X.ToString(CultureInfo.InvariantCulture));
            originNode.SetAttribute("y", t.Origin.Y.ToString(CultureInfo.InvariantCulture));

            transform.AppendChild(positionNode);
            transform.AppendChild(rotationNode);
            transform.AppendChild(scaleNode);
            transform.AppendChild(originNode);

            return(transform);
        }
Example #2
0
        internal Cv_SceneNode(Cv_EntityID entityID, Cv_EntityComponent renderComponent, Cv_Transform to, Cv_Transform?from = null)
        {
            Properties           = new Cv_NodeProperties();
            Properties.EntityID  = entityID;
            Properties.ToWorld   = to;
            Properties.FromWorld = (from != null ? from.Value : Cv_Transform.Identity);
            Properties.Name      = renderComponent != null?renderComponent.GetType().Name : "SceneNode";

            Properties.Radius = -1;
            TransformChanged  = true;
            Component         = renderComponent;
            Children          = new List <Cv_SceneNode>();
        }
Example #3
0
        protected override Cv_EntityComponent CreateComponent(string componentName)
        {
            var component = ComponentFactory.Create(Cv_EntityComponent.GetID(componentName));

            if (component == null)
            {
                var gComponent = new GameComponent();
                gComponent.Init(componentName);
                return(gComponent);
            }

            return(component);
        }
        public Cv_ParticleEmitterNode(Cv_Entity.Cv_EntityID entityID, Cv_EntityComponent renderComponent, Cv_Transform to, Cv_Transform?from = null) : base(entityID, renderComponent, to, from)
        {
            m_Particles = new LinkedList <Cv_Particle>();

            var particleComponent = (Cv_ParticleEmitterComponent)Component;

            for (var i = 0; i < MAX_PARTICLES; i++)
            {
                m_Particles.AddFirst(new Cv_Particle());
            }

            m_iNumLiveParticles = 0;

            m_Random = new Random();
        }
Example #5
0
        //Note(JM): Used for editor
        #if EDITOR
        public void AddComponent(string entityPath, string componentTypeName, Cv_EntityComponent component)
        {
            if (component.Owner != null)
            {
                Cv_Debug.Error("Trying to add a component that already has an owner.");
            }

            var entity = GetEntity(entityPath);

            if (entity != null)
            {
                entity.AddComponent(componentTypeName, component);
                component.VPostInitialize();
                component.VPostLoad();
            }
        }
Example #6
0
        protected override Cv_EntityComponent CreateComponent(XmlElement componentData)
        {
            var component = ComponentFactory.Create(Cv_EntityComponent.GetID(componentData.Name));

            if (component == null)
            {
                component = new GameComponent();
                ((GameComponent)component).Init(componentData.Name);
            }

            if (!component.VInitialize(componentData))
            {
                Cv_Debug.Error("Failed to initialize component: " + componentData.Name);
                return(null);
            }

            return(component);
        }
Example #7
0
        protected override Cv_EntityComponent[] ModifyEntity(Cv_Entity entity, XmlNodeList overrides)
        {
            var components = new List <Cv_EntityComponent>();

            foreach (XmlElement componentNode in overrides)
            {
                var componentID = Cv_EntityComponent.GetID(componentNode.Name);
                var component   = entity.GetComponent(componentID);

                if (component != null)
                {
                    component.VInitialize(componentNode);
                    component.VOnChanged();
                    components.Add(component);
                }
                else
                {
                    component = CreateComponent(componentNode);
                    if (component != null)
                    {
                        if (component is GameComponent)
                        {
                            entity.AddComponent(((GameComponent)component).ComponentName, component);
                        }
                        else
                        {
                            entity.AddComponent(component.GetType().Name, component);
                        }

                        components.Add(component);
                        //component.VPostInitialize();
                    }
                }
            }

            return(components.ToArray());
        }