CathodeLib
CathodeLib 0.7.1
Available as a NuGet package, or alternatively just include this repo as a submodule in your project!
All parsers inherit from a base CathodeFile
class which provides:
Implementation
flag, defining if the parser supports CREATE
, LOAD
, and/or SAVE
functionality for the file. Parsers which support all three have the ability to generate files from scratch.Loaded
bool, which is true if the parser has populated its values from a pre-existing file that it has loaded. If false, the parser is creating a new file on save.Filepath
string, which is the filepath that the parser is using to either load or save the file.Save
function, which will save the file out if the parser has the SAVE
flag. This function can optionally be given a new filepath to save the file to. Returns false if saving fails.OnLoadBegin
, OnLoadSuccess
, OnSaveBegin
, OnSaveSuccess
which fire at load/save start and successful completion respectively, with the appropriate filepath as an arg.Most parsers provide access to the file's content via an Entries
parameter, however this can vary per implementation.
Note: in debug mode the parsers will all fail hard, however in release mode all load/save calls are wrapped in try/catch statements.
Parsers currently available in CathodeLib...
CATHODE.Commands
handles COMMANDS.PAK
files
Composite
scripts which hold various Entity
types for logic
FunctionEntity
= functions which execute functionality, with parameters and links to child Entity
objectsVariableEntity
= variables which can be used externally as parameters on an instanced Composite
via a FunctionEntity
ProxyEntity
= a proxy of a FunctionEntity
within another Composite
, useful for acting on events in another compositeOverrideEntity
= an override of a parameter value on an entity within an instanced Composite
in this Composite
Check out a full overview of the Commands structure on the Wiki, and follow this handy guide to create your first script!
CATHODE.PAK2
handles UI.PAK
and ANIMATIONS.PAK
filesCATHODE.Models
handles LEVEL_MODELS.PAK
files, paired with a MODELS_LEVEL.BIN
CATHODE.Textures
handles LEVEL_TEXTURES.ALL.PAK
files, paired with a LEVEL_TEXTURE_HEADERS.ALL.BIN
CATHODE.LEGACY.Assets.Shaders
handles various SHADERS
PAK
files (WIP)CATHODE.Movers
handles MODELS.MVR
filesCATHODE.RenderableElements
handles REDS.BIN
filesCATHODE.Resources
handles RESOURCES.BIN
filesCATHODE.Materials
handles MODELS.MTL
filesCATHODE.MaterialMappings
handles MATERIAL_MAPPINGS.PAK
filesCATHODE.EnvironmentMaps
handles ENVIRONMENTMAP.BIN
filesCATHODE.EnvironmentAnimations
handles ENVIRONMENT_ANIMATION.DAT
filesCATHODE.PathBarrierResources
handles PATH_BARRIER_RESOURCES
filesCATHODE.PhysicsMaps
handles PHYSICS.MAP
filesCATHODE.Lights
handles LIGHTS.BIN
filesCATHODE.Collisions
handles COLLISION.BIN
filesCATHODE.CollisionMaps
handles COLLISION.MAP
filesCATHODE.AnimationStrings
handles ANIM_STRING_DB.BIN
and ANIM_STRING_DB_DEBUG.BIN
filesCATHODE.EXPERIMENTAL.NavigationMesh
handles NAV_MESH
files (experimental)CATHODE.SoundNodeNetwork
handles SNDNODENETWORK.DAT
filesCATHODE.SoundLoadZones
handles SOUNDLOADZONES.DAT
filesCATHODE.SoundFlashModels
handles SOUNDFLASHMODELS.DAT
filesCATHODE.SoundEventData
handles SOUNDEVENTDATA.DAT
filesCATHODE.SoundEnvironmentData
handles SOUNDENVIRONMENTDATA.DAT
filesCATHODE.SoundDialogueLookups
handles SOUNDDIALOGUELOOKUPS.DAT
filesCATHODE.SoundBankData
handles SOUNDBANKDATA.DAT
filesCATHODE.CharacterAccessorySets
handles CHARACTERACCESSORYSETS.BIN
filesCATHODE.CustomCharacterInfo
handles CUSTOMCHARACTERINFO.BIN
filesCATHODE.CustomCharacterConstrainedComponents
handles CUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BIN
filesCATHODE.Strings
handles *.TXT
filesCATHODE.BML
handles any .BML
files
XmlDocument
via BML.Content
CATHODE.ProgressionSave
handles PROGRESSION.AIS
filesCATHODE.EXPERIMENTAL.MissionSave
handles *.AIS
files (experimental)CathodeLib is in no way related to (or endorsed by) Creative Assembly or SEGA.