Conquer Space
0.0.0
A space themed grand strategy game set in the near future, with realistic orbital mechanics, and an emphasis on economics and politics.
src
core
components
colony.h
Go to the documentation of this file.
1
/* Conquer Space
2
* Copyright (C) 2021-2025 Conquer Space
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <https://www.gnu.org/licenses/>.
16
*/
17
#pragma once
18
19
#include <vector>
20
21
#include <entt/entity/entity.hpp>
22
23
namespace
cqsp::core::components
{
24
enum class
ColonizationSteps
{
Surveying
,
Preparation
,
InitialBase
,
HumanSettlement
,
PermanentSettlement
};
25
26
struct
ColonizationTarget
{
27
// TODO(EhWhoAmI): This should be a vector or something as multiple entities might want to colonize a specific
28
// place
29
entt::entity
colonizer
;
30
ColonizationSteps
steps
=
ColonizationSteps::Surveying
;
31
// Progress in percentage or something
32
int
progress
= 0;
33
};
34
35
struct
Colony
{
36
// Since our population is likely to be very small, we should probably just have a resource ledger representing our
37
uint16_t
population
= 0;
38
uint16_t
max_population
= 0;
// The capacity that our colony can store
39
uint16_t
power
= 0;
40
float
comms_power
= 0;
41
// The different stuff the different parts it will provide
42
std::vector<entt::entity>
components
;
43
};
44
45
struct
HabitationModule
{
46
// Provides space for this many crew to live in
47
uint16_t
crew
;
48
};
49
50
struct
CommunicationsModule
{
51
// Let's just make all comms modules perfect sdrs with infinite power lol
52
float
power
;
53
};
54
55
struct
ColonyCoreModule
{
56
// A control center and stuff
57
// ooh what if we just tack that on lol
58
};
59
60
struct
Survey
{};
61
}
// namespace cqsp::core::components
cqsp::core::components
Definition:
area.h:27
cqsp::core::components::ColonizationSteps
ColonizationSteps
Definition:
colony.h:24
cqsp::core::components::ColonizationSteps::HumanSettlement
@ HumanSettlement
cqsp::core::components::ColonizationSteps::PermanentSettlement
@ PermanentSettlement
cqsp::core::components::ColonizationSteps::Surveying
@ Surveying
cqsp::core::components::ColonizationSteps::Preparation
@ Preparation
cqsp::core::components::ColonizationSteps::InitialBase
@ InitialBase
cqsp::core::components::ColonizationTarget
Definition:
colony.h:26
cqsp::core::components::ColonizationTarget::progress
int progress
Definition:
colony.h:32
cqsp::core::components::ColonizationTarget::steps
ColonizationSteps steps
Definition:
colony.h:30
cqsp::core::components::ColonizationTarget::colonizer
entt::entity colonizer
Definition:
colony.h:29
cqsp::core::components::ColonyCoreModule
Definition:
colony.h:55
cqsp::core::components::Colony
Definition:
colony.h:35
cqsp::core::components::Colony::max_population
uint16_t max_population
Definition:
colony.h:38
cqsp::core::components::Colony::components
std::vector< entt::entity > components
Definition:
colony.h:42
cqsp::core::components::Colony::population
uint16_t population
Definition:
colony.h:37
cqsp::core::components::Colony::comms_power
float comms_power
Definition:
colony.h:40
cqsp::core::components::Colony::power
uint16_t power
Definition:
colony.h:39
cqsp::core::components::CommunicationsModule
Definition:
colony.h:50
cqsp::core::components::CommunicationsModule::power
float power
Definition:
colony.h:52
cqsp::core::components::HabitationModule
Definition:
colony.h:45
cqsp::core::components::HabitationModule::crew
uint16_t crew
Definition:
colony.h:47
cqsp::core::components::Survey
Definition:
colony.h:60
Generated on Thu Jul 9 2026 07:40:54 for Conquer Space by
1.9.2