diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-03-20 13:59:24 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-03-20 13:59:24 +0500 |
| commit | d470cca696d98b2a84f1667f29139c750888cdcd (patch) | |
| tree | 6ed0b54d8a9b1a132a4eae81c87fa004b6e7b945 /engine/Dynamic/Descriptors | |
| parent | 6b7c58ea290aec748d7439caa6ba7b07cefaf628 (diff) | |
Object target scale property
Diffstat (limited to 'engine/Dynamic/Descriptors')
| -rw-r--r-- | engine/Dynamic/Descriptors/Objects.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/engine/Dynamic/Descriptors/Objects.go b/engine/Dynamic/Descriptors/Objects.go index 4dbee34..eb3fb78 100644 --- a/engine/Dynamic/Descriptors/Objects.go +++ b/engine/Dynamic/Descriptors/Objects.go @@ -49,9 +49,10 @@ func (base *ObjectDescriptor) parseTextures() []*coreobjects.TextureBlock { rl.TraceLog(rl.LogWarning, "Failed to get the required by the object %s texture: %s", base.Name, err.Error()) continue } + outp = append(outp, &coreobjects.TextureBlock { Texture: texture, - Offset: v.Offset, + Window: v.getTargetWindow(texture), }) } return outp @@ -85,6 +86,7 @@ type ObjectTextureBlock struct { Name string TextureId *uint64 Offset rl.Vector2 + TargetScale *rl.Vector2 } func (base *ObjectTextureBlock) GetTexture() (*rl.Texture2D, error) { @@ -94,6 +96,21 @@ func (base *ObjectTextureBlock) GetTexture() (*rl.Texture2D, error) { return components.Resources.Textures.GetTextureByName(base.Name) } +// Calculates the target window of the tetxure block. Should be provided with its target texture +func (base *ObjectTextureBlock) getTargetWindow(texture *rl.Texture2D) *rl.Rectangle { + var outp = &rl.Rectangle { + X: base.Offset.X, + Y: base.Offset.Y, + Width: float32(texture.Width), + Height: float32(texture.Height), + } + if base.TargetScale != nil { + outp.Width = base.TargetScale.X + outp.Height = base.TargetScale.Y + } + return outp +} + type ObjectColliderBlock struct { Type string Size rl.Vector2 |
