-
Notifications
You must be signed in to change notification settings - Fork 0
Home
goldsrcmap is a Python library designed for parsing, manipulating, and generating GoldSrc Engine map files (.map).
https://pypi.org/project/goldsrcmap/
pip install goldsrcmap
- Download the repository and add
src
(https://github.com/G2Pavon/goldsrcmap/tree/main/src) content to your working directory e.g./Mapping/Scripting/
:
/Mapping/Scripting/format
/Mapping/Scripting/utils
/Mapping/Scripting/__init__.py
/Mapping/Scripting/goldsrcmap.py
- Import goldsrcmap library:
import goldsrcmap as gsm
# your code
- Ensure that you have the
src
content in your working directory/Scripting/
. - Create the python file in
/Scripting/
/Scripting/your_script.py
- Import goldsrcmap.py module:
import goldsrcmap as gsm
# your code
https://github.com/G2Pavon/goldsrcmap/wiki/Examples
https://github.com/G2Pavon/goldsrcmapextensions W.I.P
You can access to map through Python classes.
The principal class is Map
, which store all entities (worldspawn, brush entities and point entities) defining the map in a Python list
.
Each entity is an instance of the Entity
class, which stores entity key-values pairs properties in a Python dict
and brushes (if is worldspawn or brush entity) in a Python list
.
A brush is an instance of the Brush
class, which stores the brush faces in a Python list
.
A brush face is an instace of the Face
class, which stores the hyperplane as an instance of the Plane
class and the texture definitions as an instance of the Texture
class.
The Texture
class has attributes such as texture name, uv axis as instances of the Vector3
class, uv offset/shift, uv rotation and uv scale.
The Plane
is defined by three Point
instances.
Attribute | Description |
---|---|
entities | List of Entity objects. |
More info: https://github.com/G2Pavon/goldsrcmap/wiki/Map
Attribute | Description |
---|---|
properties | Dictionary containing properties of the entity. |
brushes | List of Brush objects. |
More info: https://github.com/G2Pavon/goldsrcmap/wiki/Entity
Attribute | Description |
---|---|
faces | List of Face objects. |
More info: https://github.com/G2Pavon/goldsrcmap/wiki/Brush
Attribute | Description |
---|---|
plane |
Plane object. |
texture |
Texture object. |
More info: https://github.com/G2Pavon/goldsrcmap/wiki/Face
Attribute | Description |
---|---|
name | String representing the texture name. |
u_axis |
Vector3 object representing the texture axis. |
u_offset | Float values for texture offset. |
v_axis |
Vector3 object representing the texture axis. |
v_offset | Float values for texture offset. |
rotation | Float value indicating texture rotation. |
u_scale | Float values for texture scaling. |
v_scale | Float values for texture scaling. |
More info: https://github.com/G2Pavon/goldsrcmap/wiki/Texture
Attribute | Description |
---|---|
p1 |
Point object representing first point of the plane |
p2 |
Point object representing second point of the plane |
p3 |
Point object representing third point of the plane |
Attribute | Description |
---|---|
x | Float representing the x coordinate |
y | Float representing the y coordinate |
z | Float representing the z coordinate |
Attribute | Description |
---|---|
x | Float representing the x coordinate |
y | Float representing the y coordinate |
z | Float representing the z coordinate |
Attribute | Description |
---|---|
start |
Point endpoint of the line segment |
end |
Point endpoint of the line segment |
Map loading benchmark on a low end netbook:
Intel Celeron N4020 (2) @ 2.800GHz
Memory: 3730MiB
Time (s) | Size (MB) | Map | Game |
---|---|---|---|
0.176 | 0.833 | kz_monte | |
0.130 | 0.853 | kz_navidad | |
0.192 | 1.048 | cnd_overblock | |
0.362 | 1.622 | cnd_obscure | |
0.639 | 3.329 | kz_frostbite | |
0.779 | 3.415 | kz_citadel | |
0.920 | 3.807 | kzarg_Imponente | |
0.868 | 4.099 | kz_gigablockier_pub | |
2.107 | 7.792 | kz_1man_game_ez | |
2.192 | 8.810 | muj_to_Shad0ws | |
6.133 | 14.831 | ad_magna | |
5.758 | 19.821 | shib3 | |
10.353 | 26.496 | shib5 | |
11.655 | 50.973 | ad_heresp2 |
https://developer.valvesoftware.com/wiki/MAP_(file_format)
https://github.com/stefanha/map-files/blob/master/MAPFiles.pdf