TKMap has a huge base everything is built up on. This Skeleton or alternatively named “Core-System” consists out of 9 elements. 7 cores, the ApplicationBase and the TKMap.Studio as an Add-In which implements functionality. This skeleton provides all functionality that is required to build the core-functionality of TKMap. Editing tools, content production tools and a lot more.
The first and upmost important core of the skeleton is the so called TKCore. This library is the basement of TKMap and provides every commonly shared object of all other cores. This library has to be referenced by all Add-Ins and all cores. It defines the base structure and so implicitly the Skeleton itself.
The ApplicationBase is a lightweight starter. It starts the application and contains the IDE class which initializes the whole application. It manages all Cores (each Core-library has one Core-class named by its library, i.e. GUICore which provides all functionality of its core) and does run individual setup tasks.
TKMap.Resources is a library which contains Skeleton-wide resources like language files containing translation for Core functions or images, icons, etc. used by the basement elements. The TKMap.Studio Add-In has it’s own resources.
In tandem with the cores the ApplicationBase acts as a complete framework for any IDE.
The first Core is the AddIn-core. It provides classes which provide Add-In management as well as application extension classes that provide Registration. Registration classes are used to register components which can be exchanged on-demand to enable or disable features based on Add-In- and user configuration. More about this can be found in the TKMap Dev section.
The second Core contains file-system functionality. It provides easy access to commonly used files like ini and xml. Moreover it contains the powerful I/O pipeline which provides import & export functionality using a pipeline-approach for flexible and dynamic content processing. More about this can be found in the TKMap Dev section.
The third Core contains rendering functionality. It provides both high-level classes for easy and fast rendering and low-level access for advanced rendering. The high-level classes includes a fast and easy to use RenderBatch which also allows for fast primitive rendering and sprite rendering. Shading and more advanced techniques will be available in the Release version in order to allow powerful editing tools for Lighting, Particles, Texture Editing and more. More about this can be found in the TKMap Dev section.
The fourth Core contains user-interface components. It comprises UI tweaking, UI modification, extensibility, docking and much more. More about this can be found in the TKMap Dev section.
The fifth Core is the Kernel. This is a lightweight core which provides low-level features used Skeleton-wide. This includes Event-Mangement, Core-Logging, Debugging tools, Application Variables, the Masterloop (a class which provides the base-clock for rendering updates similiar to the Gameloop in games) as well as Performance Measuring utilities and Application Insights. More about this can be found in the TKMap Dev section.
The sixth Core is the Localization core which gives access to automatized localization features. Multiple languages are supported, on-demand translation, language merging and a lot more. More about this can be found in the TKMap Dev section.
The last and upmost element is the Studio. It is an actual Add-In which uses all functionality of the Skeleton. This is an required Add-In. Without it TKMap would start as an empty window. It provides basic tools which are planned for the 1.0 release. Third-party Add-Ins have to be built upon TKMap.Studio in order to run becasue the Studio implements base structures which are required for development. It is still provided that everything can be exchanged. All components of the Studio are actually exchangeable by third-parties.
The ApplicationBase could also be used without TKMap.Studio. This way it would act as a complete framework for any IDE.
More about this can be found in the TKMap Dev section.