sprite_animation_resource.vala 1021 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2012-2026 Daniele Bartolini et al.
  3. * SPDX-License-Identifier: GPL-3.0-or-later
  4. */
  5. namespace Crown
  6. {
  7. public struct AnimationFrame
  8. {
  9. public Database _db;
  10. public Guid _id;
  11. public AnimationFrame(Database db
  12. , Guid id
  13. , int frame
  14. , int index
  15. )
  16. {
  17. _db = db;
  18. _id = id;
  19. _db.create(_id, OBJECT_TYPE_ANIMATION_FRAME);
  20. _db.set_double(_id, "frame", (double)frame);
  21. _db.set_double(_id, "index", (double)index);
  22. }
  23. }
  24. public struct SpriteAnimation
  25. {
  26. public Database _db;
  27. public Guid _id;
  28. public SpriteAnimation(Database db, Guid id)
  29. {
  30. _db = db;
  31. _id = id;
  32. _db.create(_id, OBJECT_TYPE_SPRITE_ANIMATION);
  33. _db.set_double(_id, "frames_per_second", 16.0);
  34. _db.create_empty_set(_id, "frames");
  35. }
  36. public void add_frame(AnimationFrame anim)
  37. {
  38. _db.add_to_set(_id, "frames", anim._id);
  39. }
  40. public int save(Project project, string resource_name)
  41. {
  42. return _db.save(project.absolute_path(resource_name) + "." + OBJECT_TYPE_SPRITE_ANIMATION, _id);
  43. }
  44. }
  45. } /* namespace Crown */