|
|
- using System.Numerics;
- using Raylib_cs;
-
- namespace Smoll.Ex2 {
- class SpriteComponent : Smoll.Component {
- Complex offset;
- string asset_name;
- Transform2DComponent? ownerTransform;
- Texture2D texture;
-
- public SpriteComponent(string asset_name, int offset_x = 0, int offset_y = 0)
- {
- this.offset = offset_x + Complex.ImaginaryOne*offset_y;
- this.asset_name = asset_name;
- }
-
- public override void OnAttached() {
- ownerTransform = owner.GetComponent<Transform2DComponent>();
- texture = owner.layers.First().attachedEngine.GetModule<RaylibAssetManagerModule>().GetTexture(asset_name);
- }
-
- public override void Draw(Smoll.Layer.DrawMode drawMode) {
- if(drawMode == Layer.DrawMode.Normal) {
- ownerTransform ??= owner.GetComponent<Transform2DComponent>();
- ownerTransform ??= new Transform2DComponent();
- var tr = ownerTransform.AbsoluteTransform();
- Raylib.DrawTextureEx(texture, new Vector2((float)tr.position.Real, (float)tr.position.Imaginary), tr.angle*180f/MathF.PI, tr.scale, Color.White);
- }
- }
- }
- }
|