[nostalgia/scene] Start Scene package
This commit is contained in:
parent
a199cf113a
commit
c7e053668e
@ -13,6 +13,7 @@ endif()
|
||||
|
||||
add_subdirectory(core)
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(scene)
|
||||
add_subdirectory(world)
|
||||
|
||||
if(NOSTALGIA_BUILD_PLAYER)
|
||||
|
21
src/nostalgia/scene/CMakeLists.txt
Normal file
21
src/nostalgia/scene/CMakeLists.txt
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
add_library(
|
||||
NostalgiaScene
|
||||
scene.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
NostalgiaScene PUBLIC
|
||||
NostalgiaCore
|
||||
)
|
||||
|
||||
install(
|
||||
FILES
|
||||
scene.hpp
|
||||
DESTINATION
|
||||
include/nostalgia/scene
|
||||
)
|
||||
|
||||
#if(NOSTALGIA_BUILD_STUDIO)
|
||||
# add_subdirectory(studio)
|
||||
#endif()
|
15
src/nostalgia/scene/scene.cpp
Normal file
15
src/nostalgia/scene/scene.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2016 - 2020 gtalent2@gmail.com
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include "scene.hpp"
|
||||
|
||||
namespace nostalgia::scene {
|
||||
|
||||
|
||||
|
||||
}
|
53
src/nostalgia/scene/scene.hpp
Normal file
53
src/nostalgia/scene/scene.hpp
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2016 - 2020 gtalent2@gmail.com
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ox/std/types.hpp>
|
||||
#include <ox/std/vector.hpp>
|
||||
|
||||
namespace nostalgia::scene {
|
||||
|
||||
struct TileDoc {
|
||||
|
||||
constexpr static auto Fields = 2;
|
||||
constexpr static auto Preloadable = true;
|
||||
constexpr static auto TypeName = "net.drinkingtea.nostalgia.scene.Tile";
|
||||
constexpr static auto TypeVersion = 1;
|
||||
|
||||
uint16_t sheetIdx = 0;
|
||||
uint8_t type = 0;
|
||||
|
||||
};
|
||||
|
||||
struct SceneDoc {
|
||||
|
||||
using TileMapRow = ox::Vector<TileDoc>;
|
||||
using TileMapLayer = ox::Vector<TileMapRow>;
|
||||
using TileMap = ox::Vector<TileMapLayer>;
|
||||
|
||||
constexpr static auto Fields = 1;
|
||||
constexpr static auto Preloadable = true;
|
||||
constexpr static auto TypeName = "net.drinkingtea.nostalgia.scene.Scene";
|
||||
constexpr static auto TypeVersion = 1;
|
||||
|
||||
TileMap tiles;
|
||||
|
||||
};
|
||||
|
||||
struct SceneInstance {
|
||||
|
||||
uint16_t layers = 0;
|
||||
uint16_t *columns = nullptr;
|
||||
uint16_t *rows = nullptr;
|
||||
uint16_t **tileMapIdx = nullptr;
|
||||
uint8_t **tileType = nullptr;
|
||||
|
||||
};
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user