public void SerializeAndDeserialize_WhenSpriteIsNotNull() { // Arrange var texture = Substitute.For <ITexture>(); var sprite = new Sprite(texture, Vector2.Zero, Vector2.Zero, Vector2.Zero, 0); var spriteAssetId = AssetId.CreateUnique(); var component = new SpriteRendererComponent { Visible = false, SortingLayerName = "Some sorting layer", OrderInLayer = 2, Sprite = sprite }; AssetStore.GetAssetId(sprite).Returns(spriteAssetId); AssetStore.GetAsset <Sprite>(spriteAssetId).Returns(sprite); // Act var actual = SerializeAndDeserialize(component); // Assert Assert.That(actual.Visible, Is.EqualTo(component.Visible)); Assert.That(actual.SortingLayerName, Is.EqualTo(component.SortingLayerName)); Assert.That(actual.OrderInLayer, Is.EqualTo(component.OrderInLayer)); Assert.That(actual.Sprite, Is.EqualTo(sprite)); }
public static void AddSprite (this Scene scene, TransformComponent transformComponent, SpriteRendererComponent spriteRendererComponent) { int entity = scene.CreateEntity(); scene.AddComponent(entity, transformComponent); scene.AddComponent(entity, spriteRendererComponent); }
public (SpriteAnimationComponent, SpriteRendererComponent) AddSpriteAnimationAndRendererComponents() { var spriteAnimationComponent = new SpriteAnimationComponent(); var spriteRendererComponent = new SpriteRendererComponent(); var entity = new Entity(); entity.AddComponent(spriteAnimationComponent); entity.AddComponent(spriteRendererComponent); _scene.AddEntity(entity); return(spriteAnimationComponent, spriteRendererComponent); }
void IECSSystem.Execute(ECSEngine engine, ECSEntity[] entities) { for (int i = 0; i < entities.Length; i++) { ECSEntity entity = entities[i]; PositionComponent pc = engine.GetComponent <PositionComponent>(entity); SpriteRendererComponent src = engine.GetComponent <SpriteRendererComponent>(entity); src.Sprite.position = pc.Position; engine.SetComponent <SpriteRendererComponent>(entity, src); src.Sprite.DrawTexture(src.Texture); } }
public override void Draw(Scene scene, Matrix4x4 viewProjectionMatrix, Framebuffer framebuffer = null) { if (framebuffer != null) { framebuffer.EnableColorDrawBuffer(scene.Pipeline.FbStructureIndex.Color, true); framebuffer.EnableColorDrawBuffer(scene.Pipeline.FbStructureIndex.Id, true); } // TODO: add transparency Renderer2D.BeginScene(viewProjectionMatrix); { if (bucket != null) { foreach (var spEnt in bucket) { SpriteRendererComponent src = spEnt.Item2; // check if enabled if (!src.Usable) { continue; } TransformComponent trans = spEnt.Item1; // forced z index //if (!ForceZIndex) //else Matrix4x4 matrix = Matrix4x4.CreateScale(new Vector3(src.Size, 1.0f)) * Matrix4x4.CreateTranslation(new Vector3(src.DrawOffset, 0.0f)) * trans.WorldTransformMatrix; // small check can be implemented later if (src.TextureAsset == null) { Renderer2D.DrawQuad(matrix, src.Color, spEnt.CommonEntity.UID); } else if (src.TextureAsset.IsLoaded) { Renderer2D.DrawQuad(matrix, src.TextureAsset.Texture, src.Color, src.TextureOffsets, spEnt.CommonEntity.UID); } } } scene.OnRender(new SpriteRenderEvent()); } Renderer2D.EndScene(); }
public void SerializeAndDeserialize_WhenSpriteIsNull() { // Arrange var component = new SpriteRendererComponent { Visible = false, SortingLayerName = "Some sorting layer", OrderInLayer = 2, Sprite = null }; // Act var actual = SerializeAndDeserialize(component); // Assert Assert.That(actual.Visible, Is.EqualTo(component.Visible)); Assert.That(actual.SortingLayerName, Is.EqualTo(component.SortingLayerName)); Assert.That(actual.OrderInLayer, Is.EqualTo(component.OrderInLayer)); Assert.That(actual.Sprite, Is.Null); }