osbtools
Version:
A set of tools for working with osu! storyboards
37 lines (36 loc) • 1.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const enums_1 = require("../types/enums");
const storyboardElement_1 = __importDefault(require("./storyboardElement"));
class SbSprite extends storyboardElement_1.default {
type = enums_1.ESbElementType.Sprite;
constructor({ path, layer, origin, defaultPosition }) {
super({ path, layer, origin, defaultPosition });
}
getTitle(data) {
const { layer, origin, path, defaultPosition } = data;
return [this.type, layer, origin, `"${path}"`, defaultPosition.toString()].join(",");
}
toString() {
const title = this.getTitle(this.getData());
const properties = this.getProperties();
const propertiesString = properties
? properties.map((property) => {
const title = ` ${property.toString()}`;
if ([enums_1.ESbElementProperty.L, enums_1.ESbElementProperty.T].includes(property.type)) {
const groupProperties = property.data?.properties;
const groupPropertiesString = groupProperties
? groupProperties.map((property) => ` ${property.toString()}`).join("\n")
: "";
return [title, groupPropertiesString].filter(Boolean).join("\n");
}
return title;
})
: [];
return [title, ...propertiesString].join("\n");
}
}
exports.default = SbSprite;