Пример #1
0
        public override void ConstructRenderable()
        {
            RenderBoundingBox Renderable = RenderableFactory.BuildBoundingBox(Bounds, WorldTransform);

            RenderAdapter = new Rendering.Core.RenderableAdapter();
            RenderAdapter.InitAdaptor(Renderable, this);
        }
        public override void ConstructRenderable()
        {
            RenderModel Renderable = RenderableFactory.BuildRenderModelFromFrame(this);

            RenderAdapter = new Rendering.Core.RenderableAdapter();
            RenderAdapter.InitAdaptor(Renderable, this);
        }
Пример #3
0
        public static SceneGraph Deserialize(string XMLString)
        {
            // TODO KAM: Complete the deserialize here (and also in your actions, camera...)
            XElement xe = XElement.Parse(XMLString);

            if (xe.Name != "SceneGraph")
            {
                return(null);
            }
            else
            {
                Vector3     translation = Util.DeserializeVector((xe.Nodes().First((x) => (x as XElement).Name == "Translation") as XElement).FirstNode.ToString());
                Quaternion  rotation    = Util.DeserializeQuaternion((xe.Nodes().First((x) => (x as XElement).Name == "Rotation") as XElement).FirstNode.ToString());
                Vector3     scale       = Util.DeserializeVector((xe.Nodes().First((x) => (x as XElement).Name == "Scaling") as XElement).FirstNode.ToString());
                var         fn          = (xe.Nodes().First((x) => (x as XElement).Name == "Renderable") as XElement).FirstNode;
                IRenderable child       = (fn == null) ? null : RenderableFactory.Deserialize(fn.ToString());

                var tr = new SceneGraph(Matrix.Transformation(Vector3.Zero, Quaternion.Identity, scale, Vector3.Zero, rotation, translation), child);

                // Do all children...
                foreach (var xchild in (xe.Nodes().Where((x) => (x as XElement).Name == "Child")))
                {
                    tr.AttachChild(
                        ((xchild as XElement).Nodes().First((x) => (x as XElement).Name == "Name") as XElement).Value,
                        SceneGraph.Deserialize(((xchild as XElement).Nodes().First((x) => (x as XElement).Name == "SceneGraph") as XElement).ToString())
                        );
                }

                return(tr);
            }
        }
        public void Serialization()
        {
            var tr  = new TestRenderable();
            var tr2 = RenderableFactory.Deserialize(RenderableFactory.Serialize(tr).ToString());

            Assert.IsInstanceOfType(tr2, typeof(TestRenderable), "Deserialized result should be an instance of TestRenderable");
        }
Пример #5
0
        public override void ConstructRenderable()
        {
            BoundingBox       TempBox    = new BoundingBox(new Vector3(0.5f), new Vector3(0.5f));
            RenderBoundingBox Renderable = RenderableFactory.BuildBoundingBox(TempBox, WorldTransform);

            RenderAdapter = new Rendering.Core.RenderableAdapter();
            RenderAdapter.InitAdaptor(Renderable, this);
        }
Пример #6
0
        public GameEngine(IInput input, Player player, Renderer.Renderer renderer, IMap map, RenderableFactory renderableFactory)
        {
            _player            = player;
            _renderer          = renderer;
            _map               = map;
            _renderableFactory = renderableFactory;

            input.InputReceived += HandleInputReceived;
        }
Пример #7
0
        /// <summary>
        /// Creates a variable from a token:
        ///
        /// {{ variable }}
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public IRenderable CreateVariable(string token)
        {
            Match match = ContentOfVariable.Match(token);

            if (match.Success)
            {
                return(RenderableFactory.CreateVariable(match.Groups[1].Value));
            }
            throw new SyntaxException(Liquid.ResourceManager.GetString("BlockVariableNotTerminatedException"), token, Liquid.VariableEnd);
        }
        public void CreateRenderable_Player_ReturnsExpectedRenderable()
        {
            var sut = new RenderableFactory();

            var        player = new Player(new Location(3, 4));
            Renderable result = sut.CreateRenderable(player);

            result.Source.Should().BeSameAs(player);
            result.Representation.Should().Be(RenderableFactory.PLAYER_REPRESENTATION);
            result.ZIndex.Should().Be(RenderableFactory.PLAYER_ZINDEX);
        }
        public override void ConstructRenderable()
        {
            // We don't want to use this code yet, it's from old-old stuff which needs to be looked at.
            // TODO: Look at bringing this old feature back.
            return;

            RenderStaticCollision CollisionMesh = RenderableFactory.BuildRenderItemDesc(Hash);

            RenderAdapter = new Rendering.Core.RenderableAdapter();
            RenderAdapter.InitAdaptor(CollisionMesh, this);
        }
        public override void Deserialize(XElement element)
        {
            //Read in all of our renderables.
            if (element.Element("renderables") != null)
            {
                RenderableFactory factory = (RenderableFactory)GameServiceManager.GetService(typeof(RenderableFactory));

                if (factory != null)
                {
                    renderables = factory.GenerateRenderables(element.Element("renderables"), this);
                }
            }
        }
Пример #11
0
        public static XElement Serialize(SceneGraph SceneGraph)
        {
            var tr = new XElement("SceneGraph",
                                  new XElement("Translation", Util.SerializeVector(SceneGraph.Translation)),
                                  new XElement("Rotation", Util.SerializeQuaternion(SceneGraph.Rotation)),
                                  new XElement("Scaling", Util.SerializeVector(SceneGraph.Scale)),
                                  new XElement("Renderable", RenderableFactory.Serialize(SceneGraph.Renderable))
                                  );

            foreach (var Child in SceneGraph.Children)
            {
                tr.Add(new XElement("Child",
                                    new XElement("Name", Child.Key),
                                    Serialize(Child.Value)
                                    ));
            }

            return(tr);
        }
Пример #12
0
        public override void Deserialize(XElement element)
        {
            Color color = new Color();

            if (element.Element("filledColor") != null)
            {
                color = color.ConvertColorFromString(element.Element("filledColor").Value);
            }

            Offset = Offset.DeserializeOffset(element.Element("offset"));

            //Retrieve the asset elements
            List <XElement> elements = element.Elements("renderable").ToList();

            RenderableFactory factory = (RenderableFactory)GameServiceManager.GetService(typeof(RenderableFactory));

            for (int i = 0; i < elements.Count; i++)
            {
                if (elements[i].Attribute("name") != null)
                {
                    //Loading the bar element...
                    if (elements[i].Attribute("name").Value.Equals("bar", StringComparison.InvariantCultureIgnoreCase))
                    {
                        Bar        = (ITexturedRenderable)factory.GenerateRenderable(elements[i], this);
                        Bar.Parent = this;
                        Bar.Offset = Offset;
                    }
                    else if (elements[i].Attribute("name").Value.Equals("border",
                                                                        StringComparison.InvariantCultureIgnoreCase))
                    {
                        Border        = (ITexturedRenderable)factory.GenerateRenderable(elements[i], this);
                        Border.Parent = this;
                        Border.Offset = Offset;
                    }
                }
            }

            FilledColor  = color;
            this.Visible = true;
        }
Пример #13
0
 public void ConstructRenderable(GraphicsClass InGraphicsClass)
 {
     RenderObject = new RenderableAdapter();
     RenderObject.InitAdaptor(RenderableFactory.BuildAIWorld(InGraphicsClass, this), this);
 }