34 lines
857 B
C++
34 lines
857 B
C++
#pragma once
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <QPoint>
|
|
#include <QString>
|
|
|
|
#include "BuildingType.h"
|
|
#include "ItemType.h"
|
|
#include "Rotation.h"
|
|
#include "ShipLayout.h"
|
|
|
|
struct BlueprintBuilding
|
|
{
|
|
BuildingType type;
|
|
Rotation rotation;
|
|
QPoint offset; // tile offset from bounding-box center (floor for even sizes)
|
|
std::string recipeId; // empty = none selected
|
|
std::optional<ShipLayoutConfig> shipLayout;
|
|
|
|
// Splitter output filters captured at blueprint creation (REQ-UI-BLUEPRINT-STORAGE).
|
|
// Empty = accept all. Re-applied to the placed splitter site (REQ-UI-BLUEPRINT-PLACE).
|
|
std::vector<ItemType> splitterFilterA;
|
|
std::vector<ItemType> splitterFilterB;
|
|
};
|
|
|
|
struct Blueprint
|
|
{
|
|
QString name;
|
|
std::vector<BlueprintBuilding> buildings;
|
|
};
|