Documentation¶
CMT - Celaria Map Toolkit¶
Celaria Map Toolkit can convert different map format from one into another.
Install via pip:
pip install cmt
About the usage see:
cmt –help
About¶
.cmap support¶
Version |
Encode |
Decode |
Convert |
Downgrade |
Upgrade |
0 |
✔ |
✔ |
✔ |
✔ |
|
1 |
✔ |
✔ |
✔ |
✔ |
.ecmap support¶
Version |
Encode |
Decode |
Convert |
Downgrade |
Upgrade |
0 |
✔ |
✔ |
✔ |
✔ |
|
1 |
✔ |
✔ |
✔ |
✔ |
Credits¶
- Developer
- Format Definition
Third Party¶
- pytest
- Prospector
- Read the Docs Sphinx Theme
- Setuptools
Jason R Coombs / Setuptools Developers
- Sphinx
- sphinx-autodoc-typehints
- twine
- wheel
Disclaimer¶
This software is not official supported by https://www.celaria.com/.
License¶
Copyright 2019-present Iceflower S (iceflower@gmx.de)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
User Guide¶
Installation¶
Python is required in the version 3.7. or higher, it can be downloaded at https://www.python.org/downloads/.
During the Windows installation you should make sure that the PATH
/ environment variable is set and pip
is installed.
Under Linux it should be ensured that pip
is installed, if this is not done with the standard installation.
pip install cmt
Internals¶
Reference material.
cmt¶
Static and important data which is needed by the program and do not need any third party libraries. (this is important because it is used inside the setup.py.
-
cmt.static_data.
AUTHOR
= 'Iceflower S'¶ author
-
cmt.static_data.
AUTHOR_EMAIL
= 'iceflower@gmx.de'¶ author email
-
cmt.static_data.
DESCRIPTION
= 'Celeria Map Toolkit, can convert different map formats from one into another.'¶ short description
-
cmt.static_data.
LONG_NAME
= 'Celaria Map Toolkit'¶ long name of this program
-
cmt.static_data.
NAME
= 'CMT'¶ name of this program
-
cmt.static_data.
PROJECT_URL
= 'https://github.com/IceflowRE/cmt'¶ project url
-
cmt.static_data.
VERSION
= '0.3.0.dev1'¶ version in PEP440 format
cmt.blender¶
-
class
cmt.blender.v2_80.object_panel.
BlockProps
(*args, **kwargs)¶ Bases:
bpy.types.PropertyGroup
-
class
cmt.blender.v2_80.object_panel.
Dummy
(*args, **kwargs)¶ Bases:
bpy.types.PropertyGroup
-
class
cmt.blender.v2_80.object_panel.
ObjectPanel
(*args, **kwargs)¶ Bases:
bpy.types.Panel
Creates a Panel in the scene context of the properties editor
-
bl_context
= 'object'¶
-
bl_idname
= 'OBJECT_PT_cmt'¶
-
bl_label
= 'Celaria Object'¶
-
bl_region_type
= 'WINDOW'¶
-
bl_space_type
= 'PROPERTIES'¶
-
draw
(context)¶
-
draw_header
(context)¶
-
classmethod
poll
(context)¶
-
-
cmt.blender.v2_80.object_panel.
register
(version=1)¶
-
cmt.blender.v2_80.object_panel.
unregister
()¶
-
class
cmt.blender.v2_80.scene_panel.
MetadataProps
(*args, **kwargs)¶ Bases:
bpy.types.PropertyGroup
-
class
cmt.blender.v2_80.scene_panel.
ScenePanel
(*args, **kwargs)¶ Bases:
bpy.types.Panel
Creates a Panel in the scene context of the properties editor
-
bl_context
= 'scene'¶
-
bl_idname
= 'SCENE_PT_layout'¶
-
bl_label
= 'Celaria Metadata'¶
-
bl_region_type
= 'WINDOW'¶
-
bl_space_type
= 'PROPERTIES'¶
-
draw
(context)¶
-
draw_header
(context)¶
-
-
cmt.blender.v2_80.scene_panel.
register
()¶
-
cmt.blender.v2_80.scene_panel.
unregister
()¶
-
cmt.blender.v2_80.utils.
add_exclusive_to_collection
(obj, coll_name)¶
-
cmt.blender.v2_80.utils.
create_material
(name, color)¶ Creates a material with a specific color, if the material name does not already exist. :type name:
str
:param name: :type color:Tuple
[float
,float
,float
,float
] :param color: :rtype: bpy.types.Material :return:
-
cmt.blender.v2_80.v1.add_objects.
add_block
(ent, time=None)¶ Add a block to collection. :return Created object.
- Return type
bpy.types.Object
-
cmt.blender.v2_80.v1.add_objects.
add_camera
(position, look_at, preview_cam_set)¶ - Return type
bpy.types.Object
-
cmt.blender.v2_80.v1.add_objects.
add_dummy
(ent)¶ - Return type
bpy.types.Object
-
cmt.blender.v2_80.v1.add_objects.
add_player_start
(ent)¶
-
cmt.blender.v2_80.v1.add_objects.
add_sphere
(ent)¶ - Return type
bpy.types.Object
-
cmt.blender.v2_80.v1.add_objects.
add_sun
(angle, rotation_z)¶ - Return type
bpy.types.Object
cmt.cmap¶
cmt.cmap.v0¶
-
class
cmt.cmap.v0.cmap.
CMap
¶ Bases:
cmt.cmap.a_cmap.ACMap
Celaria .cmap format (version 0)
Datatypes
Abbreviation
Type
Byte size
uByte
unsigned byte
1
uShort
unsigned short
2
uInt
unsigned int
4
sShort
signed short
2
sInt
signed int
4
f32
float
4
f64
double
8
Description format
> <datatype> (<number of datatypes in sequence>) // <description>
or
> [<variable name>] : <datatype> (<number of datatypes in sequence>) // <description>
Format
> uByte (11) // string identifier > uByte (1) // version > nameLen : uByte (1) // number of characters in map name > uByte (nameLen) // map name as String > uByte (1) - boolean, if the timer will be run in singleplayer > uByte (1) // unused byte > times : uByte (1) - number of checkpoint times (including medal time) > uInt (times) // checkpoint times for platin > uInt (times) // checkpoint times for gold > uInt (times) // checkpoint times for silver > uInt (times) // checkpoint times for bronze > f32 (1) // sun rotation on Z axis > f32 (1) // sun height expressed as an angle (between 0 and 90 degrees) > f64 (1) // preview camera position x > f64 (1) // preview camera position y > f64 (1) // preview camera position z > f64 (1) // preview camera look at position x > f64 (1) // preview camera look at position y > f64 (1) // preview camera look at position z > entityNumber : uInt (1) // number of entities on the map for entity in entityNumber { > entityType : uInt (1) // entityType switch(entityType) { case 0: // block > blockType : uByte (1) // blockType/color > uByte (1) // unused byte > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z > uInt (1) // scale x > uInt (1) // scale y > uInt (1) // scale z > f32 (1) // rotation on Z axis if (blockType == 5){ // checkpoint block > uByte (1) // checkpoint Number } case 1: // sphere > sInt (1) // position x > sInt (1) // position y > sInt (1) // position z case 2: // player start > uByte (1) // unused byte > sInt (1) // position x > sInt (1) // position y > sInt (1) // position z > f32 (1) // rotation on Z axis case 128: // dummy id > uByte (1) // ID > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z > uInt (1) // scale x > uInt (1) // scale y > uInt (1) // scale z > f32 (1) // rotation on Z axis }
-
classmethod
decode
(data, offset, debug=False)¶ - Return type
CMAP
-
classmethod
-
class
cmt.cmap.v0.entities.
Block
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶
-
classmethod
-
class
cmt.cmap.v0.entities.
BlockType
¶ Bases:
enum.Enum
An enumeration.
-
CHECKPOINT
= 5¶
-
FINISH
= 1¶
-
ICE
= 4¶
-
JUMP
= 2¶
-
NOTHING
= 0¶
-
SPEED
= 3¶
-
-
class
cmt.cmap.v0.entities.
Dummy
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶
-
classmethod
-
class
cmt.cmap.v0.entities.
PlayerStart
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶ - Parameters
- Return type
-
classmethod
cmt.cmap.v1¶
-
class
cmt.cmap.v1.cmap.
CMap
¶ Bases:
cmt.cmap.a_cmap.ACMap
Celaria .cmap format (version 1)
Datatypes
Abbreviation
Type
Byte size
uByte
unsigned byte
1
uShort
unsigned short
2
uInt
unsigned int
4
sShort
signed short
2
sInt
signed int
4
f32
float
4
f64
double
8
Description format
> <datatype> (<number of datatypes in sequence>) // <description>
or
> [<variable name>] : <datatype> (<number of datatypes in sequence>) // <description>
Format
> uByte (11) // string identifier > uByte (1) // version > nameLen : uByte (1) // number of characters in map name > uByte (nameLen) // map name as String > uByte (1) // boolean, previewCam_set > uByte (1) // number of checkpoint times (including finish line) > times : uByte (1) // number of checkpoint times (including finish line) > uInt (times) // checkpoint times for platin > uInt (times) // checkpoint times for gold > uInt (times) // checkpoint times for silver > uInt (times) // checkpoint times for bronze > f32 (1) // sun rotation on Z axis > f32 (1) // sun angle to xy plane (between 0 and 90 degrees) > f64 (1) // preview camera position x > f64 (1) // preview camera position y > f64 (1) // preview camera position z > f64 (1) // preview camera look at position x > f64 (1) // preview camera look at position y > f64 (1) // preview camera look at position z > entityNumber : uInt (1) // number of entities on the map for entity in entityNumber { > entityType : uInt (1) // entityType switch(entityType) { case 0: // block > blockType : uByte (1) // blockType/color > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z > uInt (1) // scale x > uInt (1) // scale y > uInt (1) // scale z > f32 (1) // rotation on Z axis if (blockType == 5){ // checkpoint block > uByte (1) // checkpoint Number } case 1: // sphere > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z case 2: // player start > uByte (1) // unknown > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z > f32 (1) // rotation on Z axis case 128: // dummy id > uByte (1) // ID > sInt (1) // position x > sInt (1) // position y > uInt (1) // position z > uInt (1) // scale x > uInt (1) // scale y > uInt (1) // scale z > f32 (1) // rotation on Z axis } }
-
classmethod
decode
(data, offset, debug=False)¶ - Return type
CMAP
-
classmethod
-
class
cmt.cmap.v1.entities.
Block
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶
-
classmethod
-
class
cmt.cmap.v1.entities.
BlockType
¶ Bases:
enum.Enum
An enumeration.
-
CHECKPOINT
= 5¶
-
FINISH
= 1¶
-
ICE
= 4¶
-
JUMP
= 2¶
-
NOTHING
= 0¶
-
SPEED
= 3¶
-
-
class
cmt.cmap.v1.entities.
Dummy
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶
-
classmethod
-
class
cmt.cmap.v1.entities.
PlayerStart
¶ Bases:
cmt.cmap.a_entity.AEntity
-
classmethod
decode
(data, offset, debug=False)¶ - Parameters
- Return type
-
classmethod
cmt.converter¶
-
class
cmt.converter.v0.
Converter
¶ Bases:
cmt.a_converter.AConverter
-
static
convert_to
(source, target)¶ Convert to the other map format of same version.
-
static
downgrade
(source)¶ Downgrade to the format version below.
- Return type
None
-
static
-
class
cmt.converter.v1.
Converter
¶ Bases:
cmt.a_converter.AConverter
-
static
convert_to
(source, target)¶ Convert to the other map format of same version.
-
static
cmt.cs¶
-
cmt.cs.main.
main
(argv=None)¶ Entry point into the program. Gets the arguments from the console and proceed them with
ArgumentParser
. Returns if its success successful 0 else 1.
cmt.ecmap¶
cmt.ecmap.v0¶
-
class
cmt.ecmap.v0.ecmap.
ECMap
¶ Bases:
cmt.ecmap.a_ecmap.AECMap
Celaria .ecmap format (version 0)
Datatypes
Abbreviation
Type
Byte size
uByte
unsigned byte
1
uShort
unsigned short
2
uInt
unsigned int
4
sShort
signed short
2
sInt
signed int
4
f32
float
4
f64
double
8
Description format
> <datatype> (<number of datatypes in sequence>) // <description>
or
> [<variable name>] : <datatype> (<number of datatypes in sequence>) // <description>
Difference regarding to the .cmap begins with a ‘!!’.
Format
> uByte (11) // string identifier > uByte (1) // version > nameLen : uByte (1) // number of characters in map name > uByte (nameLen) // map name as String !! // checkpoint times are missing > f32 (1) // sun rotation on Z axis > f32 (1) // sun angle to xy plane (between 0 and 90 degrees) ... same as cmap v0 ...
-
classmethod
decode
(data, offset, debug=False)¶ - Return type
ECMAP
-
classmethod
cmt.ecmap.v1¶
-
class
cmt.ecmap.v1.ecmap.
ECMap
¶ Bases:
cmt.ecmap.a_ecmap.AECMap
Celaria .ecmap format (version 1)
Datatypes
Abbreviation
Type
Byte size
uByte
unsigned byte
1
uShort
unsigned short
2
uInt
unsigned int
4
sShort
signed short
2
sInt
signed int
4
f32
float
4
f64
double
8
Description format
> <datatype> (<number of datatypes in sequence>) // <description>
or
> [<variable name>] : <datatype> (<number of datatypes in sequence>) // <description>
Difference regarding to the .cmap begins with a ‘!!’.
Format
> uByte (11) // string identifier > uByte (1) // version > nameLen : uByte (1) // number of characters in map name > uByte (nameLen) // map name as String !! // checkpoint times are missing > f32 (1) // sun rotation on Z axis > f32 (1) // sun angle to xy plane (between 0 and 90 degrees) ... same as cmap v1 ...
-
classmethod
decode
(data, offset, debug=False)¶ - Return type
ECMAP
-
classmethod