Skip to content

Commit d2b5d6a

Browse files
committed
updated readme
1 parent 6c1223a commit d2b5d6a

1 file changed

Lines changed: 82 additions & 46 deletions

File tree

README.md

Lines changed: 82 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -19,58 +19,94 @@ Most parsers provide access to the file's content via an `Entries` parameter, ho
1919

2020
Note: in debug mode the parsers will all fail hard, however in release mode all load/save calls are wrapped in try/catch statements.
2121

22-
**Parsers currently available in CathodeLib...**
23-
24-
## For scripting:
25-
- `CATHODE.Commands` handles `COMMANDS.PAK` files
26-
- The file consists of `Composite` scripts which hold various `Entity` types for logic
22+
## Parsers currently available in CathodeLib:
23+
- `CATHODE.AlphaLightLevel` handles level `WORLD/ALPHALIGHT_LEVEL.BIN` files
24+
- This is a A16B16G16R16F image with a specified resolution, baking alpha light data for the level
25+
- `CATHODE.AnimationStrings` handles `ANIM_STRING_DB.BIN` and `ANIM_STRING_DB_DEBUG.BIN` files within `ANIMATION.PAK
26+
- This is a database of hashed animation-related strings, and their associated hashes
27+
- `CATHODE.AnimClipDB` handles `ANIM_CLIP_DB.BIN` files within `ANIMATION.PAK`
28+
- This is a database of animation clips available by character type (WIP)
29+
- `CATHODE.BML` handles any `.BML` files
30+
- Get/set content as an `XmlDocument` via `BML.Content`
31+
- `CATHODE.CharacterAccessorySets` handles level `WORLD/CHARACTERACCESSORYSETS.BIN` files
32+
- This is a collection of metadata for Character entities within the level (e.g. gender, build, assets, etc)
33+
- `CATHODE.CollisionMaps` handles level `WORLD/COLLISION.MAP` files
34+
- This defines COLLISION_MAPPING resource data for collision barriers, including zone metadata
35+
- `CATHODE.Collisions` handles level `WORLD/COLLISION.BIN` files
36+
- This defines weighted collision data for character hitboxes
37+
- `CATHODE.Commands` handles level `WORLD/COMMANDS.PAK` and/or `WORLD/COMMANDS.BIN` files
38+
- This consists of `Composite` scripts which hold various `Entity` types for logic
2739
- `FunctionEntity` = functions which execute functionality, with parameters and links to child `Entity` objects
2840
- `VariableEntity` = variables which can be used externally as parameters on an instanced `Composite` via a `FunctionEntity`
2941
- `ProxyEntity` = a proxy of a `FunctionEntity` within another `Composite`, useful for acting on events in another composite
3042
- `OverrideEntity` = an override of a parameter value on an entity within an instanced `Composite` in this `Composite`
31-
32-
Check out a full overview of the Commands structure [on the Wiki](https://github.com/OpenCAGE/CathodeLib/wiki/Cathode-scripting-overview), and follow [this handy guide](https://github.com/OpenCAGE/CathodeLib/wiki/Creating-your-first-Cathode-script) to create your first script!
33-
34-
## For assets:
43+
- A `Utils` member provides various utilities for working with Commands data via data tables appended to the saved file
44+
- `CATHODE.CustomCharacterAssetData` handles the `CHR_INFO/CUSTOMCHARACTERASSETDATA.BIN` file
45+
- This defines the tints and decals that character asset types use
46+
- `CATHODE.CustomCharacterConstrainedComponents` handles the `CHR_INFO/CUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BIN` file
47+
- This defines the character parameters that character component types use
48+
- `CATHODE.CustomCharacterInfo` handles the `CHR_INFO/CUSTOMCHARACTERINFO.BIN` file
49+
- This defines base character presets, including skeletons and accessories
50+
- `CATHODE.EnvironmentAnimations` handles level `WORLD/ENVIRONMENT_ANIMATION.DAT` files
51+
- This defines environmental animation data (WIP)
52+
- `CATHODE.EnvironmentMaps` handles level `WORLD/ENVIRONMENTMAP.BIN` files
53+
- This maps instanced entities with environment map textures
54+
- `CATHODE.Lights` handles level `WORLD/LIGHTS.BIN` files
55+
- This defines various lighting data for instanced entities (although, modifying it appears to have no visual impact)
56+
- `CATHODE.MaterialMappings` handles level `WORLD/MATERIAL_MAPPINGS.PAK` files
57+
- This defines material remappings, used for modifying materials on instanced entities (WIP)
58+
- `CATHODE.Materials` handles level `RENDERABLE/LEVEL_MODELS.MTL` & `LEVEL_MODELS.CST` files
59+
- This defines material data, including texture pointers and constant buffers (WIP)
60+
- `CATHODE.EXPERIMENTAL.MissionSave` handles `*.AIS` files
61+
- This handles save file data (WIP)
62+
- `CATHODE.Models` handles level `RENDERABLE/LEVEL_MODELS.PAK` & `MODELS_LEVEL.BIN` files
63+
- This contains model mesh data in a CS2 format
64+
- `CATHODE.MorphTargets` handles level `WORLD/MORPH_TARGET_DB.BIN` files
65+
- This defines morph data for faces (WIP)
66+
- `CATHODE.Movers` handles level `WORLD/MODELS.MVR` files
67+
- This defines instance specific info for entities, including constant buffers and renderables (WIP)
68+
- `CATHODE.EXPERIMENTAL.NavigationMesh` handles level `WORLD/STATE_*/NAV_MESH` files
69+
- This contains the navmesh for the level state, with associated properties (WIP)
3570
- `CATHODE.PAK2` handles `UI.PAK` and `ANIMATIONS.PAK` files
36-
- `CATHODE.Models` handles `LEVEL_MODELS.PAK` files, paired with a `MODELS_LEVEL.BIN`
37-
- `CATHODE.Textures` handles `LEVEL_TEXTURES.ALL.PAK` files, paired with a `LEVEL_TEXTURE_HEADERS.ALL.BIN`
38-
- `CATHODE.LEGACY.Assets.Shaders` handles various `SHADERS` `PAK` files (WIP)
39-
40-
## For level data and mappings:
41-
- `CATHODE.Movers` handles `MODELS.MVR` files
42-
- `CATHODE.RenderableElements` handles `REDS.BIN` files
43-
- `CATHODE.Resources` handles `RESOURCES.BIN` files
44-
- `CATHODE.Materials` handles `MODELS.MTL` files
45-
- `CATHODE.MaterialMappings` handles `MATERIAL_MAPPINGS.PAK` files
46-
- `CATHODE.EnvironmentMaps` handles `ENVIRONMENTMAP.BIN` files
47-
- `CATHODE.EnvironmentAnimations` handles `ENVIRONMENT_ANIMATION.DAT` files
48-
- `CATHODE.PathBarrierResources` handles `PATH_BARRIER_RESOURCES` files
49-
- `CATHODE.PhysicsMaps` handles `PHYSICS.MAP` files
50-
- `CATHODE.Lights` handles `LIGHTS.BIN` files
51-
- `CATHODE.Collisions` handles `COLLISION.BIN` files
52-
- `CATHODE.CollisionMaps` handles `COLLISION.MAP` files
53-
- `CATHODE.AnimationStrings` handles `ANIM_STRING_DB.BIN` and `ANIM_STRING_DB_DEBUG.BIN` files
54-
- `CATHODE.EXPERIMENTAL.NavigationMesh` handles `NAV_MESH` files (experimental)
55-
- `CATHODE.SoundNodeNetwork` handles `SNDNODENETWORK.DAT` files
56-
- `CATHODE.SoundLoadZones` handles `SOUNDLOADZONES.DAT` files
57-
- `CATHODE.SoundFlashModels` handles `SOUNDFLASHMODELS.DAT` files
58-
- `CATHODE.SoundEventData` handles `SOUNDEVENTDATA.DAT` files
59-
- `CATHODE.SoundEnvironmentData` handles `SOUNDENVIRONMENTDATA.DAT` files
60-
- `CATHODE.SoundDialogueLookups` handles `SOUNDDIALOGUELOOKUPS.DAT` files
61-
- `CATHODE.SoundBankData` handles `SOUNDBANKDATA.DAT` files
62-
- `CATHODE.CharacterAccessorySets` handles `CHARACTERACCESSORYSETS.BIN` files
63-
- `CATHODE.CustomCharacterInfo` handles `CUSTOMCHARACTERINFO.BIN` files
64-
- `CATHODE.CustomCharacterConstrainedComponents` handles `CUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BIN` files
65-
- `CATHODE.Strings` handles `*.TXT` files
66-
67-
## For configurations:
68-
- `CATHODE.BML` handles any `.BML` files
69-
- Get/set content as an `XmlDocument` via `BML.Content`
70-
71-
## For saves:
71+
- This allows parsing of the PAK2 archive format, containing embedded files
72+
- `CATHODE.PathBarrierResources` handles level `WORLD/PATH_BARRIER_RESOURCES` files
73+
- This defines the navmesh barrier resources (WIP)
74+
- `CATHODE.PhysicsMaps` handles level `WORLD/PHYSICS.MAP` files
75+
- This defines DYNAMIC_PHYSICS_SYSTEM resource data for composite instances with physics systems
7276
- `CATHODE.EXPERIMENTAL.ProgressionSave` handles `PROGRESSION.AIS` files
73-
- `CATHODE.EXPERIMENTAL.MissionSave` handles `*.AIS` files (experimental)
77+
- This handles progression save file data (WIP)
78+
- `CATHODE.RadiosityInstanceMap` handles level `RENDERABLE/RADIOSITY_INSTANCE_MAP.TXT` files
79+
- This contains mappings between lightmap transforms in RADIOSITY_RUNTIME to resource indexes
80+
- `CATHODE.RenderableElements` handles level `WORLD/REDS.BIN` files
81+
- This defines all renderable elements in a level - a model index with associated material index and count
82+
- `CATHODE.Resources` handles level `WORLD/RESOURCES.BIN` files
83+
- This defines all available resources within the level
84+
- `CATHODE.Shaders` handles level `RENDERABLE/LEVEL_SHADERS_DX11.PAK` & `LEVEL_SHADERS_DX11_BIN.PAK` & `LEVEL_SHADERS_DX11_IDX_REMAP.PAK` files
85+
- This defines all shaders within the level and additional metadata (WIP)
86+
- `CATHODE.SkeleDB` handles the `ANIM_SYS/SKELE/DB.BIN` file within `ANIMATION.PAK`
87+
- This defines all available skeletons and mappings
88+
- `CATHODE.SoundBankData` handles level `WORLD/SOUNDBANKDATA.DAT` files
89+
- This defines all soundbanks available to be utilised within the game
90+
- `CATHODE.SoundDialogueLookups` handles level `WORLD/SOUNDDIALOGUELOOKUPS.DAT` files
91+
- This defines a lookup table for animation/sound hashes within soundbanks
92+
- `CATHODE.SoundEnvironmentData` handles level `WORLD/SOUNDENVIRONMENTDATA.DAT` files
93+
- This defines all reverb types that are used within the level
94+
- `CATHODE.SoundEventData` handles level `WORLD/SOUNDEVENTDATA.DAT` files
95+
- This defines all sound events available to be utilised within the game
96+
- `CATHODE.SoundFlashModels` handles level `WORLD/SOUNDFLASHMODELS.DAT` files
97+
- This maps flash texture resource IDs with the model IDs that use them within the level
98+
- `CATHODE.SoundLoadZones` handles level `WORLD/SOUNDLOADZONES.DAT` files
99+
- This specifies all soundbanks that are used within the level
100+
- `CATHODE.SoundNodeNetwork` handles level `WORLD/SOUNDNODENETWORK.DAT` files
101+
- This defines the layout of the sound node network within the level, used for sound propagation (WIP)
102+
- `CATHODE.TextDB` handles `*.TXT` files within `TEXT` directories
103+
- This defines a database of subtitles, which are saved per language
104+
- `CATHODE.Textures` handles level `WORLD/LEVEL_TEXTURES.ALL.PAK` & `LEVEL_TEXTURE_HEADERS.ALL.BIN` files
105+
- This contains all textures used within the level with additional metadata
106+
- `CATHODE.EXPERIMENTAL.Traversals` handles level `WORLD/STATE_*/TRAVERSAL` files
107+
- This contains traversal metadata for the level (WIP)
108+
109+
Check out a full overview of the Commands structure [on the Wiki](https://github.com/OpenCAGE/CathodeLib/wiki/Cathode-scripting-overview), and follow [this handy guide](https://github.com/OpenCAGE/CathodeLib/wiki/Creating-your-first-Cathode-script) to create your first script!
74110

75111
---
76112

0 commit comments

Comments
 (0)