Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions engine/src/editor/converters/animconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
#include <json.h>
#include <bson.h>

#define TRACKS "Tracks"

#define FORMAT_VERSION 3

namespace {
const char *gTracks("Tracks");
}

AnimImportSettings::AnimImportSettings() {
setType(MetaType::type<AnimationClip *>());
setVersion(FORMAT_VERSION);
Expand All @@ -25,15 +27,19 @@ TString AnimImportSettings::defaultIconPath(const TString &) const {
AssetConverter::ReturnCode AnimConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
AnimationClip clip;
AnimationClip *clip = Engine::loadResource<AnimationClip>(settings->destination().toStdString());
if(clip == nullptr) {
clip = Engine::objectCreate<AnimationClip>();
}

VariantMap map;
map[TRACKS] = readJson(src.readAll().toStdString(), settings).toList();
clip.loadUserData(map);
map[gTracks] = readJson(src.readAll().toStdString(), settings).toList();
clip->loadUserData(map);
src.close();

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&clip) );
ByteArray data = Bson::save( Engine::toVariant(clip) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
15 changes: 11 additions & 4 deletions engine/src/editor/converters/controlschemeconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,31 @@
#include <bson.h>
#include <json.h>

namespace {
const char *gData("Data");
}

ControlScehemeConverterSettings::ControlScehemeConverterSettings() {
setType(MetaType::type<ControlScheme *>());
}

AssetConverter::ReturnCode ControlSchemeConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
ControlScheme scheme;
ControlScheme *scheme = Engine::loadResource<ControlScheme>(settings->destination().toStdString());
if(scheme == nullptr) {
scheme = Engine::objectCreate<ControlScheme>();
}

VariantMap map;
map["Data"] = Json::load(src.readAll().toStdString());
scheme.loadUserData(map);
map[gData] = Json::load(src.readAll().toStdString());
scheme->loadUserData(map);

src.close();

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save(Engine::toVariant(&scheme));
ByteArray data = Bson::save(Engine::toVariant(scheme));
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
6 changes: 4 additions & 2 deletions engine/src/editor/converters/fontconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

#include <bson.h>

#define DATA "Data"
namespace {
const char *gData("Data");
}

#define FORMAT_VERSION 1

Expand Down Expand Up @@ -33,7 +35,7 @@ AssetConverter::ReturnCode FontConverter::convertFile(AssetConverterSettings *se
memcpy(&m_Data[0], data.data(), data.size());

VariantMap map;
map[DATA] = m_Data;
map[gData] = m_Data;
font->loadUserData(map);

QFile file(settings->absoluteDestination().data());
Expand Down
12 changes: 8 additions & 4 deletions engine/src/editor/converters/textconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,21 @@ TString TextConverterSettings::defaultIconPath(const TString &) const {
AssetConverter::ReturnCode TextConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
Text text;
Text *text = Engine::loadResource<Text>(settings->destination().toStdString());
if(text == nullptr) {
text = Engine::objectCreate<Text>();
}

QByteArray array = src.readAll();
src.close();
if(!array.isEmpty()) {
text.setSize(array.size());
memcpy(text.data(), array.data(), array.size());
text->setSize(array.size());
memcpy(text->data(), array.data(), array.size());
}

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&text) );
ByteArray data = Bson::save( Engine::toVariant(text) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
9 changes: 6 additions & 3 deletions engine/src/editor/converters/translatorconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,21 @@ TString TranslatorConverterSettings::defaultIconPath(const TString &) const {
AssetConverter::ReturnCode TranslatorConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
Translator loc;
Translator *loc = Engine::loadResource<Translator>(settings->destination().toStdString());
if(loc == nullptr) {
loc = Engine::objectCreate<Translator>();
}

while(!src.atEnd()) {
QByteArray line = src.readLine();
auto split = line.split(';');
loc.setPair(split.first().constData(), split.last().constData());
loc->setPair(split.first().constData(), split.last().constData());
}
src.close();

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&loc) );
ByteArray data = Bson::save( Engine::toVariant(loc) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
11 changes: 7 additions & 4 deletions modules/media/src/converters/audioconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,16 @@ AssetConverter::ReturnCode AudioConverter::convertFile(AssetConverterSettings *s
channels = m_decoder->audioFormat().channelCount();
}

AudioClip clip;
VariantMap data = convertResource(static_cast<AudioImportSettings *>(settings), channels);
clip.loadUserData(data);
AudioClip *clip = Engine::loadResource<AudioClip>(settings->destination().toStdString());
if(clip == nullptr) {
clip = Engine::objectCreate<AudioClip>();
}

clip->loadUserData(convertResource(static_cast<AudioImportSettings *>(settings), channels));

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&clip) );
ByteArray data = Bson::save( Engine::toVariant(clip) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
#include <json.h>
#include <bson.h>

#define DATA "Data"

#define FORMAT_VERSION 1

PhysicMaterialImportSettings::PhysicMaterialImportSettings() {
Expand All @@ -25,17 +23,21 @@ AssetConverterSettings *PhysicMaterialConverter::createSettings() {
AssetConverter::ReturnCode PhysicMaterialConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
PhysicMaterial material;
PhysicMaterial *material = Engine::loadResource<PhysicMaterial>(settings->destination().toStdString());
if(material == nullptr) {
material = Engine::objectCreate<PhysicMaterial>();
}

VariantMap map = Json::load(src.readAll().toStdString()).toMap();
src.close();

material.setFriction(map["Friction"].toFloat());
material.setRestitution(map["Restitution"].toFloat());
material.setDensity(map["Density"].toFloat());
material->setFriction(map["Friction"].toFloat());
material->setRestitution(map["Restitution"].toFloat());
material->setDensity(map["Density"].toFloat());

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save(Engine::toVariant(&material));
ByteArray data = Bson::save( Engine::toVariant(material) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
10 changes: 7 additions & 3 deletions modules/uikit/src/converters/stylesheetconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,20 @@ TString StyleSheetConverterSettings::defaultIconPath(const TString &) const {
AssetConverter::ReturnCode StyleSheetConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
StyleSheet style;
StyleSheet *style = Engine::loadResource<StyleSheet>(settings->destination().toStdString());
if(style == nullptr) {
style = Engine::objectCreate<StyleSheet>();
}

QByteArray array = src.readAll();
src.close();
if(!array.isEmpty()) {
style.setData(array.data());
style->setData(array.data());
}

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&style) );
ByteArray data = Bson::save( Engine::toVariant(style) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
10 changes: 7 additions & 3 deletions modules/uikit/src/converters/uiconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,20 @@ TString UiConverterSettings::defaultIconPath(const TString &) const {
AssetConverter::ReturnCode UiConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
UiDocument document;
UiDocument *document = Engine::loadResource<UiDocument>(settings->destination().toStdString());
if(document == nullptr) {
document = Engine::objectCreate<UiDocument>();
}

QByteArray array = src.readAll();
src.close();
if(!array.isEmpty()) {
document.setData(array.data());
document->setData(array.data());
}

QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(&document) );
ByteArray data = Bson::save( Engine::toVariant(document) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
Expand Down
Loading