protected override void CreateGeometry() { //var texture = new TextureCuboidWrapper(); //var bounds = new Rectangle(0, 0, 2, 1); //texture.AddSide(CuboidSide.Top, new TextureRectangle(new Rectangle(0, 0, 1, 1), bounds)); //texture.AddSide(new[] { CuboidSide.Bottom, CuboidSide.Left, CuboidSide.Right, CuboidSide.Front, CuboidSide.Back }, // new TextureRectangle(new Rectangle(0, 0, 1, 1), bounds)); Geometry.AddVertices(CuboidComposer.Create(1f)); }
protected override void CreateGeometry() { var cuboidTexture = new GeometryTextureCuboidWrapper(); cuboidTexture.AddSide( new[] { CuboidSide.Left, CuboidSide.Right, CuboidSide.Top, CuboidSide.Bottom }, new GeometryTextureIndex(1)); Geometry.AddVertices(CuboidComposer.Create(1f, 1f, 0.5f, cuboidTexture)); }
protected override void CreateGeometry() { var sideTexture = new GeometryTextureIndex(1); var topTexture = new GeometryTextureMultiplier(_size); var cuboidTexture = new GeometryTextureCuboidWrapper(); cuboidTexture.AddSide(new[] { CuboidSide.Back, CuboidSide.Front, CuboidSide.Left, CuboidSide.Right }, sideTexture); cuboidTexture.AddSide(new[] { CuboidSide.Top, CuboidSide.Bottom }, topTexture); Geometry.AddVertices(CuboidComposer.Create(_size.X, 0.2f, _size.Y, cuboidTexture)); }
protected override void CreateGeometry() { var side1Texture = new GeometryTextureMultiplier(new Vector2(_size.X, _size.Y)); var side2Texture = new GeometryTextureMultiplier(new Vector2(1, _size.Y)); var topTexture = new GeometryTextureMultiplier(new Vector2(_size.X, 1), 1); var cuboidTexture = new GeometryTextureCuboidWrapper(); cuboidTexture.AddSide(new[] { CuboidSide.Back, CuboidSide.Front }, side1Texture); cuboidTexture.AddSide(new[] { CuboidSide.Left, CuboidSide.Right }, side2Texture); cuboidTexture.AddSide(new[] { CuboidSide.Top, CuboidSide.Bottom }, topTexture); Geometry.AddVertices(CuboidComposer.Create(_size.X, _size.Y, 1f, cuboidTexture)); }
protected override void CreateGeometry() { var side1Texture = new GeometryTextureMultiplier(new Vector2(3, 2)); var side2Texture = new GeometryTextureMultiplier(new Vector2(2, 2)); var doorTexture = new GeometryTextureIndex(1); var topTexture = new GeometryTextureMultiplier(new Vector2(8, 4)); var cuboidTexture = new GeometryTextureCuboidWrapper(); cuboidTexture.AddSide(new[] { CuboidSide.Back, CuboidSide.Front }, side1Texture); cuboidTexture.AddSide(new[] { CuboidSide.Right }, side2Texture); cuboidTexture.AddSide(new[] { CuboidSide.Left }, doorTexture); cuboidTexture.AddSide(new[] { CuboidSide.Top, CuboidSide.Bottom }, topTexture); Geometry.AddVertices(CuboidComposer.Create(4f, 3f, 3f, cuboidTexture)); }
protected override void CreateGeometry() { Geometry.AddVertices(CuboidComposer.Create(0.2f, 10f, 0.2f, new GeometryTextureRectangle(new Rectangle(0, 4, 4, 4), _texture))); var sideTexture1 = new GeometryTextureRectangle(new Rectangle(0, 0, 8, 4), _texture); var sideTexture2 = new GeometryTextureRectangle(new Rectangle(12, 4, 4, 4), _texture); var bottomTexture = new GeometryTextureRectangle(new Rectangle(8, 0, 8, 4), _texture); var cuboidTexture = new GeometryTextureCuboidWrapper(); cuboidTexture.AddSide(new[] { CuboidSide.Left, CuboidSide.Right }, sideTexture2); cuboidTexture.AddSide(new[] { CuboidSide.Front, CuboidSide.Back, CuboidSide.Top }, sideTexture1); cuboidTexture.AddSide(new[] { CuboidSide.Bottom }, bottomTexture); var topPart = CuboidComposer.Create(0.8f, 0.4f, 0.4f, cuboidTexture); VertexTransformer.Offset(topPart, new Vector3(0.25f, 5f, 0f)); Geometry.AddVertices(topPart); }
private static EntityGeometry Cube(EntityData data, Texture2D propTexture) { ITextureDefintion texture = DefaultTextureDefinition.Instance; var textures = data.Textures; if (textures != null) { if (textures.Length == 1) { texture = new TextureRectangle(textures[0], propTexture); } else { var cuboidTexture = new TextureCuboidWrapper(); for (var i = 0; i < 6; i++) { if (textures.Length > i) { cuboidTexture.AddSide((CuboidSide)(i + 1), new TextureRectangle(textures[i], propTexture)); } else { cuboidTexture.AddSide((CuboidSide)(i + 1), DefaultTextureDefinition.Instance); } } texture = cuboidTexture; } } var size = data.Size3; var geometry = new EntityGeometry { Vertices = CuboidComposer.Create(size.X, size.Y, size.Z, texture), Heights = new[] { size.Y, size.Y, size.Y, size.Y }, Size = size }; return(geometry); }
private static EntityGeometry Walls(EntityData data, Texture2D propTexture) { var size = data.Size3; var textureDefs = new ITextureDefintion[4]; var textureDefsRects = new Rectangle[4]; void setTexture(Rectangle rect, int dest) { if (data.tileTexture) { if (dest % 2 == 1) { rect.Width = (int)(rect.Width * size.Z); } else { rect.Width = (int)(rect.Width * size.X); } rect.Height = (int)(rect.Height * size.Y); } textureDefs[dest] = new TextureRectangle(rect, propTexture); textureDefsRects[dest] = rect; } var textures = data.Textures; if (textures != null && textures.Length > 0) { if (textures.Length < 4) { for (var i = 0; i < 4; i++) { setTexture(textures[0], i); } } else { for (var i = 0; i < 4; i++) { setTexture(textures[i], i); } } } else { for (var i = 0; i < 4; i++) { setTexture(propTexture.Bounds, i); } } var texture = new TextureCuboidWrapper(); texture.AddSide(CuboidSide.Front, textureDefs[0]); texture.AddSide(CuboidSide.Left, textureDefs[1]); texture.AddSide(CuboidSide.Back, textureDefs[2]); texture.AddSide(CuboidSide.Right, textureDefs[3]); var vertices = CuboidComposer.Create(size.X, size.Y, size.Z, texture).ToList(); // remove top and bottom vertices: vertices.RemoveRange(0, 6); vertices.RemoveRange(vertices.Count - 6, 6); // remove sides with 0, 0 textures: // shift the right vertices to th end of the list var right = vertices.Skip(12).Take(6).ToArray(); vertices.RemoveRange(12, 6); vertices.AddRange(right); var removedOffset = 0; for (var i = 0; i < 4; i++) { if (textureDefsRects[i].Width == 0 && textureDefsRects[i].Height == 0) { vertices.RemoveRange(removedOffset, 6); } else { removedOffset += 6; } } var geometry = new EntityGeometry { Vertices = vertices.ToArray(), Heights = new[] { size.Y, size.Y, size.Y, size.Y }, Size = size }; return(geometry); }
protected override void CreateGeometry() { Geometry.AddVertices(CuboidComposer.Create(1f)); }
protected override void CreateGeometry() { Geometry.AddVertices(CuboidComposer.Create(Size.X, Size.Y, Size.Z)); }
protected override void CreateGeometry() { Geometry.AddVertices(CuboidComposer.Create(8f, 0.001f, _size, new GeometryTextureMultiplier(new Vector2(1f, _size / 2f)))); }
protected override void CreateGeometry() { Geometry.AddVertices(CuboidComposer.Create(_size, 3f, 0.01f, new GeometryTextureMultiplier(new Vector2(_size * 3f, 1f)))); }