[nostalgia] Remove World package

This commit is contained in:
Gary Talent 2023-02-06 00:18:16 -06:00
parent 24ea7fee39
commit b064239ab1
14 changed files with 0 additions and 337 deletions

View File

@ -6,7 +6,6 @@ add_subdirectory(core)
add_subdirectory(foundation)
add_subdirectory(geo)
add_subdirectory(scene)
add_subdirectory(world)
if(NOSTALGIA_BUILD_PLAYER)
add_subdirectory(player)

View File

@ -1,23 +0,0 @@
add_library(
NostalgiaWorld
world.cpp
)
target_link_libraries(
NostalgiaWorld PUBLIC
NostalgiaCore
OxMetalClaw
)
#install(TARGETS NostalgiaCommon DESTINATION lib)
install(
FILES
world.hpp
DESTINATION
include/nostalgia/world
)
if(NOSTALGIA_BUILD_STUDIO)
#add_subdirectory(studio)
endif()

View File

@ -1,20 +0,0 @@
add_library(
NostalgiaWorld-Studio OBJECT
consts.cpp
newworldwizard.cpp
worldstudioplugin.cpp
worldeditor.cpp
)
target_link_libraries(
NostalgiaWorld-Studio
NostalgiaStudio
)
install(
TARGETS
NostalgiaWorld-Studio
LIBRARY DESTINATION
${NOSTALGIA_DIST_MODULE}
)

View File

@ -1,11 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include "consts.hpp"
namespace nostalgia::world {
QString PATH_ZONES = "/World/Zones/";
}

View File

@ -1,13 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <QString>
namespace nostalgia::world {
extern QString PATH_ZONES;
}

View File

@ -1,29 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include <QDebug>
#include "consts.hpp"
#include "newworldwizard.hpp"
namespace nostalgia::world {
using namespace studio;
const QString NewWorldWizard::FIELD_WORLD_PATH = "World.WorldPath";
NewWorldWizard::NewWorldWizard(const Context *ctx) {
addLineEdit(tr("&Name:"), FIELD_WORLD_PATH, "", [this, ctx](QString worldName) {
worldName = PATH_ZONES + worldName;
auto exists = ctx->project->exists(worldName);
if (exists) {
this->showValidationError(tr("World already exists: %1").arg(worldName));
return 1;
}
return 0;
}
);
}
}

View File

@ -1,21 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <QPluginLoader>
#include <nostalgia/studio/studio.hpp>
namespace nostalgia::world {
struct NewWorldWizard: public studio::WizardFormPage {
static const QString FIELD_WORLD_PATH;
NewWorldWizard(const studio::Context *ctx);
};
}

View File

@ -1,3 +0,0 @@
{
"module_name": "Nostalgia World"
}

View File

@ -1,14 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include "worldeditor.hpp"
namespace nostalgia::world {
using namespace studio;
WorldEditor::WorldEditor(QString, const Context*) {
}
}

View File

@ -1,18 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <nostalgia/studio/studio.hpp>
namespace nostalgia::world {
class WorldEditor: public QWidget {
public:
WorldEditor(QString path, const studio::Context *ctx);
};
}

View File

@ -1,38 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include <QDebug>
#include <nostalgia/world/world.hpp>
#include "consts.hpp"
#include "newworldwizard.hpp"
#include "worldeditor.hpp"
#include "worldstudioplugin.hpp"
namespace nostalgia::world {
using namespace studio;
QVector<WizardMaker> WorldEditorPlugin::newWizards(const Context *ctx) {
return {
{
tr("Zone"),
[ctx]() -> QVector<QWizardPage*> {
return {new NewWorldWizard(ctx)};
},
[ctx](QWizard *w) {
qDebug() << "creating Region";
auto path = PATH_ZONES + w->field(NewWorldWizard::FIELD_WORLD_PATH).toString();
Region rgn;
ctx->project->mkdir(PATH_ZONES);
ctx->project->writeObj(path, &rgn);
return OxError(0);
}
}
};
}
}

View File

@ -1,23 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <QPluginLoader>
#include <nostalgia/studio/studio.hpp>
namespace nostalgia::world {
class WorldEditorPlugin: public QObject, public studio::Module {
Q_OBJECT
Q_PLUGIN_METADATA(IID "net.drinkingtea.nostalgia.world.studio.Module" FILE "world-studio.json")
Q_INTERFACES(nostalgia::studio::Module)
public:
QVector<studio::WizardMaker> newWizards(const studio::Context *ctx) override;
};
}

View File

@ -1,47 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include "world.hpp"
namespace nostalgia::world {
using namespace geo;
using namespace core;
ox::Error Zone::init(Context *ctx, Bounds bnds, ox::FileAddress tileSheet, ox::FileAddress palette) {
const auto size = static_cast<std::size_t>(bnds.width * bnds.height);
m_tiles = new Tile[size];
m_bounds = bnds;
return core::loadBgTileSheet(ctx, 0, tileSheet, palette);
}
Zone::~Zone() {
ox::safeDeleteArray(m_tiles);
}
void Zone::draw(Context *ctx) {
for (int x = 0; x < m_bounds.width; x++) {
for (int y = 0; y < m_bounds.height; y++) {
auto t = tile(x, y);
core::setTile(ctx, 0, x * 2, y * 2, t->bgTile);
core::setTile(ctx, 0, x * 2 + 1, y * 2, t->bgTile + 1);
core::setTile(ctx, 0, x * 2 + 1, y * 2 + 1, t->bgTile + 2);
core::setTile(ctx, 0, x * 2, y * 2 + 1, t->bgTile + 3);
}
}
}
std::size_t Zone::size() {
return sizeof(Zone) + static_cast<std::size_t>(m_bounds.width * m_bounds.height) * sizeof(Tile);
}
Tile *Zone::tile(int x, int y) {
return &m_tiles[x * m_bounds.width + y];
}
void Zone::setTile(int x, int y, Tile *td) {
m_tiles[x * m_bounds.width + y] = *td;
}
}

View File

@ -1,76 +0,0 @@
/*
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <ox/mc/mc.hpp>
#include <ox/std/std.hpp>
#include <nostalgia/core/core.hpp>
#include <nostalgia/geo/geo.hpp>
namespace nostalgia::world {
struct Tile {
static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Tile";
static constexpr auto TypeVersion = 1;
uint8_t bgTile = 0;
uint8_t type = 0;
};
oxModelBegin(Tile)
oxModelField(bgTile)
oxModelField(type)
oxModelEnd()
struct Zone {
static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Zone";
static constexpr auto TypeVersion = 2;
oxModelFriend(Zone);
protected:
geo::Bounds m_bounds;
Tile *m_tiles = nullptr;
public:
Zone() = default;
~Zone();
ox::Error init(core::Context *ctx, geo::Bounds bnds, ox::FileAddress tileSheet, ox::FileAddress palette = {});
void draw(core::Context *ctx);
std::size_t size();
Tile *tile(int x, int y);
void setTile(int x, int y, Tile *td);
};
oxModelBegin(Zone)
oxModelFieldRename(bounds, m_bounds)
oxModelEnd()
struct Region {
static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Region";
static constexpr auto TypeVersion = 1;
oxModelFriend(Region);
protected:
ox::Vector<Zone*> m_zones;
};
oxModelBegin(Region)
oxModelFieldRename(zones, m_zones)
oxModelEnd()
}