KTech 1.1.0
C++ 2D terminal game engine library
Loading...
Searching...
No Matches
ktech.hpp
1/*
2 KTech, Kaup's C++ 2D terminal game engine library.
3 Copyright (C) 2023-2025 Ethan Kaufman (AKA Kaup)
4
5 This file is part of KTech.
6
7 KTech is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 any later version.
11
12 KTech is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with KTech. If not, see <https://www.gnu.org/licenses/>.
19*/
20
21/*
22 | / ----- ----- ----- - -
23 || /\ | |--- | |---|
24 |||/ \ | \____ \____ | | kaup's c++ 2d terminal game engine library
25
26 In order to contact me (Kaup), refer to the "readme.md" file.
27*/
28
29#pragma once
30
31namespace KTech
32{
33 // Basic structures.
34 // Definitions in `basic_structs/`.
35 struct RGB;
36 struct RGBA;
37 struct Point;
38 struct UPoint;
39 struct Cell;
40 struct CellA;
41 // World structures.
42 // Definitions in `world/`
43 struct Texture;
44 struct Collider;
45 class Object;
46 class Layer;
47 class Camera;
48 class Map;
49 class Widget;
50 class UI;
51 // Engine and its components.
52 // Definitions in `engine/`
53 class Collision;
54 class Input;
55 class Memory;
56 class Output;
57 class Time;
58 class Engine;
59 // Defined in `utility/`
60 class Animation;
61 template<typename T>
62 struct ID;
63 template<typename T>
64 constexpr ID<T> nullID;
65 template<typename T>
66 class CachingRegistry;
67 namespace RGBColors {}
68 namespace RGBAColors {}
69 namespace Keys {}
70}
71
72#include <cstdint>
73#ifdef _WIN32
74#include <Windows.h>
75#undef RGB
76#undef max
77#endif
78
79#ifndef KTECH_DEFINITION // See `documentation/faq.md#`
80#include "basic/point.hpp"
81#include "basic/upoint.hpp"
82#include "basic/rgb.hpp"
83#include "basic/rgba.hpp"
84#include "basic/cell.hpp"
85#include "basic/cella.hpp"
86
87#include "world/collider.hpp"
88#include "world/texture.hpp"
89#include "world/object.hpp"
90#include "world/layer.hpp"
91#include "world/camera.hpp"
92#include "world/map.hpp"
93#include "world/widget.hpp"
94#include "world/ui.hpp"
95
96#include "utility/animation.hpp"
97#include "utility/cachingregistry.hpp"
98#include "utility/id.hpp"
99#include "utility/keys.hpp"
100#include "utility/rgbcolors.hpp"
101#include "utility/rgbacolors.hpp"
102
103#include "engine/collision.hpp"
104#include "engine/input/input.hpp"
105#include "engine/input/callbackgroup.hpp"
106#include "engine/memory.hpp"
107#include "engine/time/time.hpp"
108#include "engine/engine.hpp"
109#endif