cmdfx 0.2.1
Lightweight game engine for your terminal
Loading...
Searching...
No Matches
costumes.hpp
Go to the documentation of this file.
1
11#pragma once
12
13extern "C" {
14 #include "cmdfx/core/costumes.h"
15}
16
18#include <string>
19#include <vector>
20#include <memory>
21
22namespace CmdFX {
23
32 class SpriteCostumes final {
33 private:
34 std::unique_ptr<Sprite> sprite;
35 CmdFX_SpriteCostumes* costumes;
36
37 public:
38 SpriteCostumes(CmdFX_SpriteCostumes* costumes) : costumes(costumes) {}
39 SpriteCostumes(std::unique_ptr<Sprite> sprite, int count) : sprite(std::move(sprite)) {
40 costumes = Sprite_createCostumes(this->sprite->getSprite(), count);
41 }
42
43 ~SpriteCostumes() {
44 if (costumes) { Sprite_freeCostumes(sprite->getSprite()); }
45 }
46
47 CmdFX_SpriteCostumes* getSpriteCostumes() { return costumes; }
48
49 int getCount() { return costumes->costumeCount; }
50
51 void setCostume(int index, char** text, char*** ansi) {
52 Sprite_setCostumeAt(sprite->getSprite(), index, text, ansi);
53 }
54
55 void setCostume(int index, std::vector<std::string> text, std::vector<std::vector<std::string>> ansi) {
56 char** textArray = to2DArray(text);
57 char*** ansiArray = to3DArray(ansi);
58
59 Sprite_setCostumeAt(sprite->getSprite(), index, textArray, ansiArray);
60 }
61 };
62
63}
Sprite Costumes API for managing sprite states.
CmdFX_SpriteCostumes * Sprite_createCostumes(CmdFX_Sprite *sprite, int costumeCount)
Creates a sprite costumes holder.
int Sprite_setCostumeAt(CmdFX_Sprite *sprite, int index, char **costume, char ***ansiCostume)
Sets a costume at the specified index.
int Sprite_freeCostumes(CmdFX_Sprite *sprite)
Frees the sprite costumes.
Primary namespace for CmdFX.
Definition cmdfx.hpp:22
char ** to2DArray(std::vector< std::string > string)
Converts a 1D vector of strings to a 2D array of characters.
Definition builder.hpp:39
char *** to3DArray(std::vector< std::vector< std::string > > string)
Converts a 2D vector of strings to a 3D array of characters.
Definition builder.hpp:55
C++ Extensions for the CmdFX Sprites API.
Represents the holder for sprite costumes.
Definition costumes.h:38
int costumeCount
Represents the number of sprite costumes.
Definition costumes.h:73