|
1 | | -# CathodeLib |
| 1 | +<img src="https://i.imgur.com/TZNGZVA.jpg" width="100%"> |
2 | 2 |
|
3 | | -An open source library providing functionality to parse and write various formats from the Cathode engine, used for modding Alien: Isolation. |
| 3 | +# CathodeLib - Alien: Isolation C# Library |
4 | 4 |
|
5 | | -- For scripting: |
6 | | - - `CATHODE.Commands` handles `COMMANDS.PAK` files (for scripting) |
7 | | - - The file consists of `Composite` scripts which hold various `Entity` types for logic |
8 | | - - `FunctionEntity` = functions which execute functionality, with parameters and links to child `Entity` objects |
9 | | - - `VariableEntity` = variables which can be used externally as parameters on an instanced `Composite` via a `FunctionEntity` |
10 | | - - `ProxyEntity` = a proxy of a `FunctionEntity` within another `Composite`, useful for acting on events in another composite |
11 | | - - `OverrideEntity` = an override of a parameter value on an entity within an instanced `Composite` in this `Composite` |
| 5 | +### CathodeLib is an open source library providing functionality to parse and write various formats from the Cathode game engine, for modding Alien: Isolation. Used to power [OpenCAGE](https://github.com/MattFiler/OpenCAGE)! |
| 6 | + |
| 7 | +Available as a [NuGet package](https://www.nuget.org/packages/CathodeLib/), or alternatively just include this repo as a submodule in your project! |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## For scripting: |
| 12 | +- `CATHODE.Commands` handles `COMMANDS.PAK` files (for scripting) |
| 13 | + - The file consists of `Composite` scripts which hold various `Entity` types for logic |
| 14 | + - `FunctionEntity` = functions which execute functionality, with parameters and links to child `Entity` objects |
| 15 | + - `VariableEntity` = variables which can be used externally as parameters on an instanced `Composite` via a `FunctionEntity` |
| 16 | + - `ProxyEntity` = a proxy of a `FunctionEntity` within another `Composite`, useful for acting on events in another composite |
| 17 | + - `OverrideEntity` = an override of a parameter value on an entity within an instanced `Composite` in this `Composite` |
12 | 18 |
|
13 | | -- For assets: |
14 | | - - `CATHODE.Assets.PAK2` handles `UI.PAK` and `ANIMATIONS.PAK` files |
15 | | - - `CATHODE.Assets.Models` handles `LEVEL_MODELS.PAK` files, paired with a `MODELS_LEVEL.BIN` |
16 | | - - `CATHODE.Assets.Textures` handles `LEVEL_TEXTURES.ALL.PAK` files, paired with a `LEVEL_TEXTURE_HEADERS.ALL.BIN` |
17 | | - - `CATHODE.Assets.MaterialMapping` handles `MATERIAL_MAPPINGS.PAK` files |
18 | | - - `CATHODE.Assets.Shaders` handles various `SHADERS` `PAK` files |
19 | | - |
20 | | -- For level data and mappings: |
21 | | - - `CATHODE.MoverDatabase` handles `MODELS.MVR` files |
22 | | - - `CATHODE.RenderableElementsDatabase` handles `REDS.BIN` files |
23 | | - - `CATHODE.ResourcesDatabase` handles `RESOURCES.BIN` files |
24 | | - - `CATHODE.MaterialDatabase` handles `MODELS.MTL` files |
25 | | - - `CATHODE.EnvironmentMapDatabase` handles `ENVIRONMENTMAP.BIN` files |
26 | | - - `CATHODE.EnvironmentAnimationDatabase` handles `ENVIRONMENT_ANIMATION.DAT` files |
27 | | - - `CATHODE.PhysicsMapDatabase` handles `PHYSICS.MAP` files |
28 | | - - `CATHODE.CollisionMapDatabase` handles `COLLISION.MAP` files |
29 | | - - `CATHODE.AnimationStringDatabase` handles `ANIM_STRING_DB.BIN` and `ANIM_STRING_DB_DEBUG.BIN` files |
30 | | - - `CATHODE.NavigationMesh` handles `NAV_MESH` files |
31 | | - |
32 | | -- For configurations: |
33 | | - - `CATHODE.BML` handles any `.BML` files |
34 | | - - Get/set content as an `XmlDocument` via `BML.Content` |
35 | | - |
36 | | -- For saves: |
37 | | - - `CATHODE.ProgressionSave` handles `PROGRESSION.AIS` files |
38 | | - - `CATHODE.MissionSave` handles `PROGRESSION.AIS` files |
| 19 | +## For assets: |
| 20 | +- `CATHODE.Assets.PAK2` handles `UI.PAK` and `ANIMATIONS.PAK` files |
| 21 | +- `CATHODE.Assets.Models` handles `LEVEL_MODELS.PAK` files, paired with a `MODELS_LEVEL.BIN` |
| 22 | +- `CATHODE.Assets.Textures` handles `LEVEL_TEXTURES.ALL.PAK` files, paired with a `LEVEL_TEXTURE_HEADERS.ALL.BIN` |
| 23 | +- `CATHODE.Assets.MaterialMapping` handles `MATERIAL_MAPPINGS.PAK` files |
| 24 | +- `CATHODE.Assets.Shaders` handles various `SHADERS` `PAK` files |
| 25 | + |
| 26 | +## For level data and mappings: |
| 27 | +- `CATHODE.MoverDatabase` handles `MODELS.MVR` files |
| 28 | +- `CATHODE.RenderableElementsDatabase` handles `REDS.BIN` files |
| 29 | +- `CATHODE.ResourcesDatabase` handles `RESOURCES.BIN` files |
| 30 | +- `CATHODE.MaterialDatabase` handles `MODELS.MTL` files |
| 31 | +- `CATHODE.EnvironmentMapDatabase` handles `ENVIRONMENTMAP.BIN` files |
| 32 | +- `CATHODE.EnvironmentAnimationDatabase` handles `ENVIRONMENT_ANIMATION.DAT` files |
| 33 | +- `CATHODE.PhysicsMapDatabase` handles `PHYSICS.MAP` files |
| 34 | +- `CATHODE.CollisionMapDatabase` handles `COLLISION.MAP` files |
| 35 | +- `CATHODE.AnimationStringDatabase` handles `ANIM_STRING_DB.BIN` and `ANIM_STRING_DB_DEBUG.BIN` files |
| 36 | +- `CATHODE.NavigationMesh` handles `NAV_MESH` files |
| 37 | + |
| 38 | +## For configurations: |
| 39 | +- `CATHODE.BML` handles any `.BML` files |
| 40 | + - Get/set content as an `XmlDocument` via `BML.Content` |
| 41 | + |
| 42 | +## For saves: |
| 43 | +- `CATHODE.ProgressionSave` handles `PROGRESSION.AIS` files |
| 44 | +- `CATHODE.MissionSave` handles `PROGRESSION.AIS` files |
0 commit comments