Merge pull request #82 from oiltanker/master

doxygen cs documentation
This commit is contained in:
Evil Factory
2022-05-07 12:17:34 -03:00
committed by GitHub
20 changed files with 9678 additions and 5 deletions

20
.github/workflows/clean-docs.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Clean Docs
on:
push:
branches:
- master
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v2
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs-landing-page

43
.github/workflows/generate-cs-docs.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Generate Docs - Cs
on:
workflow_run:
workflows: ["Clean Docs"]
types:
- completed
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v2
- name: Create directories
run: mkdir -p doxygen/build ; mkdir -p doxygen/build/baro-server ; mkdir -p doxygen/build/baro-client
- name: Build server documentation
uses: mattnotmitt/doxygen-action@v1
with:
working-directory: 'doxygen/baro-server'
doxyfile-path: './Doxyfile'
- name: Build client documentation
uses: mattnotmitt/doxygen-action@v1
with:
working-directory: 'doxygen/baro-client'
doxyfile-path: './Doxyfile'
- name: Build containing documentation
uses: mattnotmitt/doxygen-action@v1
with:
working-directory: 'doxygen/'
doxyfile-path: './Doxyfile'
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doxygen/build
destination_dir: cs-docs
keep_files: true

View File

@@ -1,14 +1,18 @@
name: Generate Docs
on:
workflow_dispatch:
name: Generate Docs - Lua
on:
workflow_run:
workflows: ["Clean Docs"]
types:
- completed
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout branch
uses: actions/checkout@v2
- uses: leafo/gh-actions-lua@v8.0.0
with:
@@ -39,3 +43,5 @@ jobs:
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/html
destination_dir: lua-docs
keep_files: true

5
.gitignore vendored
View File

@@ -12,6 +12,11 @@ bld/
[Dd]ebug*/
[Rr]elease*/
*.o
*/Barotrauma*/doc/
doxygen/html/
doxygen/*/html/
doxygen/*/*.tag
doxygen/build
# Misc vs crap
*.v12.suo

View File

@@ -15,6 +15,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
<WarningsAsErrors>;NU1605;CS0114;CS0108CS8597;CS8600;CS8601;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8624;CS8625;CS8626;CS8629;CS8631;CS8632;CS8633;CS8634;CS8638;CS8643;CS8644;CS8645;CS8653;CS8654;CS8655;CS8667;CS8669;CS8670;CS8714;CS8717;CS8765</WarningsAsErrors>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
<DocumentationFile>Doc\BuildDocClient.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -14,6 +14,7 @@
<Configurations>Debug;Release;Unstable</Configurations>
<WarningsAsErrors>;NU1605;CS0114;CS0108CS8597;CS8600;CS8601;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8624;CS8625;CS8626;CS8629;CS8631;CS8632;CS8633;CS8634;CS8638;CS8643;CS8644;CS8645;CS8653;CS8654;CS8655;CS8667;CS8669;CS8670;CS8714;CS8717;CS8765</WarningsAsErrors>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
<DocumentationFile>Doc\BuildDocServer.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

BIN
docs-landing-page/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>LuaCs For Barotrauma</title>
<link rel="stylesheet" href="landing.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<a href="lua-docs/index.html"><div id="lua-docs" class="common-docs">
<div id="lua-bg" class="inner-bg">
<div id="lua-inner" class="inner-docs">
<img src="lua_logo.png" />
</div>
</div>
</div></a>
<a href="cs-docs/html/index.html"><div id="cs-docs" class="common-docs">
<div id="cs-bg" class="inner-bg">
<div id="cs-inner" class="inner-docs">
<img src="cs_logo.png" />
</div>
</div>
</div></a>
</body>
</html>

View File

@@ -0,0 +1,132 @@
body{
overflow: hidden;
font-size: 100%;
background-color: #777;
}
.common-docs{
z-index: 1;
text-justify: auto;
position: fixed;
top: 0;
bottom: 0;
transition-property: transform;
transition-duration: 0.5s;
transition-timing-function: ease-in-out;
overflow: hidden;
}
#lua-docs{
left: -10%;
right: 50%;
}
#cs-docs{
right: -10%;
left: 50%;
}
#cs-docs::before,#lua-docs::before{
content: "";
background: url(bg.jpg) repeat;
background-size: 80%;
background-blend-mode: luminosity;
filter: blur(2px);
position: absolute;
height: 200%;
width: 200%;
}
#lua-docs::before{
background-color: rgba(49, 49, 135, 1);
}
#cs-docs::before{
background-color: rgba(105, 44, 120, 1);
}
.common-docs:hover{
z-index: 2;
font-size: 300%;
transform: scale(1.05);
}
.inner-bg{
position: relative;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
transition-duration: 0.5s;
transition-timing-function: ease-in-out;
}
.inner-bg:hover{
background-color: rgba(255, 255, 255, 0.35);
}
.inner-docs{
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
background: radial-gradient(circle, #222, rgba(0, 0, 0, 0));
}
@media (min-width: 80em) {
.inner-docs img{
height: 30%;
width: auto;
}
.common-docs{
transform: skewX(-11deg);
}
#cs-docs::before,#lua-docs::before{
transform: skewX(11deg);
}
.common-docs:hover{
transform: skewX(-11deg) scale(1.05);
}
.inner-docs{
transform: skewX(11deg);
}
.inner-docs img{
height: 30%;
width: auto;
}
}
@media (max-width: 80em) {
.common-docs{
transform: skewX(-9deg);
}
#cs-docs::before,#lua-docs::before{
transform: skewX(9deg);
}
.common-docs:hover{
transform: skewX(-9deg) scale(1.05);
}
.inner-docs{
transform: skewX(9deg);
}
.inner-docs img{
height: 30%;
width: auto;
}
}
@media (max-width: 70em) {
.common-docs{
transform: skewX(0deg);
}
#cs-docs::before,#lua-docs::before{
transform: skewX(0deg);
}
.common-docs:hover{
transform: skewX(0deg) scale(1.05);
}
.inner-docs{
transform: skewX(0deg);
}
.inner-docs img{
height: auto;
width: 50%;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

2744
doxygen/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
<doxygenlayout version="1.0">
<navindex>
<tab type="user" url="./index.html" title="Documentation introduction"/>
<tab type="user" url="../baro-server/html/index.html" title="Server class documentation"/>
<tab type="user" url="../baro-client/html/index.html" title="Client class documentation"/>
<tab type="mainpage" visible="yes" title=""/>
</navindex>
</doxygenlayout>

2737
doxygen/baro-client/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,244 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.9.4 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="user" url="../../html/index.html" title="Documentation introduction"/>
<tab type="user" url="../../baro-server/html/index.html" title="Server class documentation"/>
<tab type="user" url="./index.html" title="Client class documentation"/>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="yes" title="">
<tab type="interfacelist" visible="yes" title="" intro=""/>
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="exceptions" visible="yes" title="">
<tab type="exceptionlist" visible="yes" title="" intro=""/>
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<concepts visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a concept page -->
<concept>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<definition visible="yes" title=""/>
<detaileddescription title=""/>
<authorsection visible="yes"/>
</concept>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>

2737
doxygen/baro-server/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,244 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.9.4 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="user" url="../../html/index.html" title="Documentation introduction"/>
<tab type="user" url="./index.html" title="Server class documentation"/>
<tab type="user" url="../../baro-client/html/index.html" title="Client class documentation"/>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="yes" title="">
<tab type="interfacelist" visible="yes" title="" intro=""/>
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="exceptions" visible="yes" title="">
<tab type="exceptionlist" visible="yes" title="" intro=""/>
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<concepts visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a concept page -->
<concept>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<definition visible="yes" title=""/>
<detaileddescription title=""/>
<authorsection visible="yes"/>
</concept>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>

598
doxygen/custom.css Normal file
View File

@@ -0,0 +1,598 @@
@namespace url(http://www.w3.org/1999/xhtml);
/* i really want this to be global */
/* @-moz-document url-prefix("file:///") { */
code {
font-family: monospace, fixed !important;
background-color: #3f3f3f;
color: #999;
border-radius: 5px;
padding-left: 3px;
padding-right: 3px;
}
div.fragment {
border-radius: 5px;
padding-left: 3px;
padding-right: 3px;
}
body
{
background-color: #333333;
/** for docs **/
color: #a1a1a1;
}
#page-content
{
background-color: #333333;
color: #bcbcbc;
}
pre, pre.fragment
{
background-color: #282828;
}
.icon
{
color: #333;
background-color: #2f436b;
/* from orig #728DC1; */;
}
.arrow
{
color: #324872;
/* from orig #9CAFD4; */;
}
/* to make keyword visible for above 'pre' */
.highlight .nf
{
color: #00adee;
}
img
{
background-color: #333333;
}
/** Note/Message boxes **/
div.admonition, div.warning
{
background-color: #474747;
}
div.admonition p.admonition-title, div.warning p.admonition-title
{
background-color: #707070;
}
/**** News ***/
#content-outer
{
background-color: #333333;
}
.postmeta
{
background-color: #474747;
border-color: #595959;
}
/**** Blog ****/
div.blogpost
{
background-color: #333;
}
div.blogpost-header
{
background-color: #333;
}
div.blogbody
{
background-color: #474747;
}
/**** Jobs ****/
.dataTable tbody .even
{
background-color: #474747;
}
.dataTable thead th
{
background-color: #6b6b6b;
}
/* Job Post Overlay */
#fancybox-outer
{
color: #bcbcbc;
background-color: #282828;
}
/***** Search box *****/
#MSearchBox
{
background-color: #333333;
}
#MSearchBox .left
{
filter: invert(80%);
}
#MSearchSelect
{
background-color: transparent;
}
.MSearchBoxActive #MSearchField
{
color: #333333;
/* this is inverted */;
}
#MSearchBox .right
{
filter: invert(80%);
}
#MSearchCloseImg
{
background-color: transparent;
}
/** Magnifying glass dropdown list **/
#MSearchSelectWindow
{
background-color: #333333;
border-color: #404040;
}
a.SelectItem, a.SelectItem:focus, a.SelectItem:active
{
color: #999;
}
a.SelectItem:hover
{
color: #bcbcbc;
}
/** Query Results dropdown list **/
#MSearchResultsWindow
{
/* left: !important; / * from orig 992px; * / dynamically generated value */
border-color: #404040;
}
/* iframe#MSearchResults {
width: !important; / * from orig 60ex; * /
height: !important; / * from orig 15em; * /
} */
/* #MSearchCloseImg {
} */
.SRPage .SREntry
{
font-size: 80%;
}
.SRResult:hover
{
background-color: #404040;
}
.SRSymbol:hover
{
color: #4a69a9;
/* from orig #425E97; */;
}
/***** For Docs *****/
div.header
{
background-color: #333333;
border-bottom-color: #001;
background-image: none;
}
div.directory
{
border-top-color: #404040;
border-bottom-color: #404040;
}
td.memItemLeft, td.memItemRight, .mdescLeft, .mdescRight, .memdoc, .memTemplParams, .memTemplItemLeft, .memTemplItemRight
{
background-color: #282828;
}
.memSeparator
{
border-bottom-color: #333333;
}
.memtitle
{
background-color: #333333;
background-image: none;
border-top-color: #404040;
border-left-color: #404040;
border-right-color: #404040;
}
.memproto, dl.reflist dt
{
/* 2nd for ToDo List */
color: #949b8c;
/* #878f7e; */
background-color: #333333;
text-shadow: unset;
background-image: none;
border-top-color: #404040;
border-left-color: #404040;
border-right-color: #404040;
}
.memname
{
background-color: #333333;
}
a
{
color: #adb8a1;
}
a.el, a.el:visited
{
color: #6f8b4c;
/* #6d7c5d; */;
}
.memdoc
{
background-image: none;
}
.memdoc, dl.reflist dd
{
/* 2nd for ToDo List */
background-color: #282828;
border-bottom-color: #404040;
border-left-color: #404040;
border-right-color: #404040;
}
.paramname
{
color: #8f6262;
}
img.formulaInl
{
filter: invert(84%);
background-color: #fff;
}
/* Template box headers */
.memtemplate
{
color: #607fbb;
/* from orignial #4665A2; */;
}
/* Labels - protected, static, virtual */
span.mlabel
{
background-color: #282828;
border-color: #333;
color: #aaa;
/* font-size: 80%; */;
}
/* Header */
h2.groupheader
{
color: #4c6db0;
/* from orig. #354C7B; */
border-bottom-color: #333333;
}
.inherit_header img
{
background-color: #333333;
}
/* To make comments visible */
span.comment
{
color: #7b7b7b;
}
/* Even rows of lists */
.directory tr.even
{
background-color: #303030;
}
/* Tables */
table.fieldtable
{
border-color: #404040;
}
.fieldtable th
{
color: #aaa;
background-color: #333333;
border-bottom-color: #404040;
background-image: none;
}
.fieldtable td.fieldtype, .fieldtable td.fieldname
{
border-right-color: #404040;
border-bottom-color: #404040;
}
.fieldtable td.fielddoc
{
border-bottom-color: #404040;
}
div.center > img
{
background-color: #cccccc;
filter: invert(100%);
}
/**** Source Code View ****/
div.fragment
{
background-color: #282828;
border-color: #333333;
}
.navpath li.navelem a
{
color: #d1d1d1;
text-shadow: none;
}
.navpath li.navelem a:hover
{
color: #f1f1f1;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
}
span.lineno
{
background-color: #333333;
border-right-color: #333333;
color: #666;
}
span.line
{
background-color: #3f3f3f;
}
span.lineno a
{
background-color: #333333;
}
span.lineno a:hover
{
background-color: #444444;
}
a.code, a.code:visited, a.line, a.line:visited
{
color: #4fa2b3;
}
span.keyword
{
color: #00b300;
}
span.keywordtype
{
color: #ac7339;
}
span.stringliteral
{
color: #0140ff;
}
#powerTip
{
background-color: #282828;
}
#powerTip div
{
background-color: #282828;
}
/**** Navigation ****/
#nav-tree
{
background-color: #282828;
background-image: none;
}
#nav-tree img
{
background-color: #282828;
}
#nav-tree .selected a
{
color: #bcbcbc;
}
/** Split bar **/
.ui-resizable-e
{
filter: invert(70%);
opacity: 0.2;
}
/**** Top Tab ****/
/*** Type 1 e.g. https://dartsim.github.io/api/ ***/
.tabs, .tabs2, .tabs3
{
background-image: none;
}
.tablist li
{
background-image: none;
}
.tablist li.current a
{
color: #aaa;
background-image: none;
background-color: #444;
}
.tablist a
{
color: #bcbcbc;
text-shadow: none;
background-image: none;
}
.tablist a:hover
{
color: #bcbcbc;
background-color: #444444;
background-image: none;
}
/*** Type 2 e.g. https://clang.llvm.org/doxygen/ ***/
.sm-dox
{
background-image: none;
}
.sm-dox a, .sm-dox a.highlighted
{
color: #bcbcbc;
text-shadow: none;
background-image: none;
}
.sm-dox a:focus, .sm-dox a:active, .sm-dox a:hover
{
color: #bcbcbc;
background-color: #444444;
background-image: none;
}
/** Pop-Pane **/
.sm-dox ul
{
background-color: #333333;
border-color: #666;
}
.sm-dox ul a, .sm-dox ul a:focus, .sm-dox ul a:hover, .sm-dox ul a:active
{
background-color: #333333;
}
.sm-dox span.scroll-up, .sm-dox span.scroll-down
{
background-color: #333333;
}
.sm-dox span.scroll-up:hover, .sm-dox span.scroll-down:hover
{
background-color: #444444;
}
.sm-dox a span.sub-arrow
{
border-top-color: #bcbcbc;
}
.sm-dox a:hover span.sub-arrow
{
border-top-color: #cccccc;
}
.sm-dox ul a, .sm-dox ul a:hover, .sm-dox ul a:focus, .sm-dox ul a:active, .sm-dox ul a.highlighted
{
color: #bcbcbc;
}
.sm-dox > li > ul::before, .sm-dox > li > ul::after
{
border-bottom-color: #333333;
}
/* Top menu-item highlighted only, for contrast with arrow */
.sm-dox a.highlighted
{
background-color: #444444;
}
.sm-dox ul a.highlighted
{
background-color: #333333;
}
/**** Bottom Tab ****/
.navpath ul
{
background-image: none;
border-color: #666;
}
img.footer
{
background-color: #333333;
opacity: 0.1;
}
/**** Navigation Tab ****/ /* e.g. nlohmann.github.io/json */
div.navtab
{
background-color: #333333;
}
/**** Classes ****/
/*** Class List, Member List ***/
td.indexkey, td.indexvalue, tr.memlist
{
background-color: #333333;
}
/* } */

117
doxygen/intro.md Normal file
View File

@@ -0,0 +1,117 @@
# Barotrauma C# modding guide
## Introduction
C# modding for Barotrauma is a subset of modding for **[Lua For Barotrauma](https://github.com/evilfactory/Barotrauma-lua-attempt)** mod,
that requires a mod package with the name `CsForBarotrauma` to be turned on (e.g. [steam workshop](https://steamcommunity.com/sharedfiles/filedetails/?id=2795927223))
This modding requires strict source structure, but comes with the benefits of being handled natively by game engine, witch removes many hurdles with type casting or similar issues.
## Starting a new mod
The main star of the show is Barotrauma::ACsMod class. It is what **all** your mods will use to hook game methods, and execute custom code.
### Important features
- All utility classes can be accessed either by their type (i.e that have name that starts with `LuaCs...`) or through `GameMain.LuaCs` property (refer to [class documentation](#ltcd)).
- All C# code files must be located in `<mod_root>/CSharp/*` otherwise they won't be compiled
- Additionally you can specify what code runs where by either ***filepath*** or ***pre-processor statements***
- In case of filepath, your files must be located in either `CSharp/Shared/*`, `CSharp/Server/*` or `CSharp/Client/*`, for *shared* code, *server-side* code or *client-side* code respectively (in any other case, the code is assumed to be shared)
- I case of pre-processor, you can use `SERVER` or `CLIENT` definitions to separate code into *server-side* code and *client-side* code respectively
- Some classes *(e.g. almost all System.IO)* is prohibited to thwart malicious mods, although current white-listing prohibits reflection, so no mod can be considered inherently safe
- In above case one must use `LuaCs...` classes to get access to system resources or similar things, if any
- If you want for your mod to inherently be turned on *client-side* when it is enabled, you must create a dummy `.xml` file.
### Code example
A generic C# mod boilerplate:
File-tree:
```
<mod_root>/
├─ CSharp/
│ ├─ Shared/ExampleMod.cs
│ ├─ Server/ExampleMod.cs
│ └─ Client/ExampleMod.cs
└─ dummyitem.xml
```
____
`<mod_root>/CSharp/Shared/ExampleMod.cs`
```csharp
using System;
using Barotrauma;
namespace ExampleNamespace {
partial class ExampleMod: ACsMod {
public ExampleMod() {
// shared code
...
#if SERVER
InitServer();
#elif CLIENT
InitClient();
#endif
}
public override void Stop() {
// stopping code, e.g. save custom data
#if SERVER
// server-side code
...
#elif CLIENT
// client-side code
...
#endif
}
}
}
```
____
`<mod_root>/CSharp/Server/ExampleMod.cs`
```csharp
using System;
using Barotrauma;
namespace ExampleNamespace {
partial class ExampleMod {
public void InitServer() {
// server-side initialization
...
}
}
}
```
____
`<mod_root>/CSharp/Client/ExampleMod.cs`
```csharp
using System;
using Barotrauma;
namespace ExampleNamespace {
partial class ExampleMod {
public void InitClient() {
// client-side initialization
...
}
}
}
```
____
`<mod_root>/dummyitem.xml`
```xml
<Items></Items>
```
## Links to class documentation {#ltcd}
- [Server documentation](../baro-server/html/index.html)
- [Client documentation](../baro-client/html/index.html)

11
doxygen/searchdata.xml Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<add>
<doc>
<field name="type">page</field>
<field name="name">index</field>
<field name="tag">MAIN</field>
<field name="url">index.html</field>
<field name="keywords"></field>
<field name="text">Barotrauma C modding guide C modding for Barotrauma is a subset of modding for Lua For Barotrauma mod that requires a mod package with the name CsForBarotrauma to be turned on e.g steam workshop This modding requires strict source structure but comes with the benefits of being handled natively by game engine witch removes many hurdles with type casting or similar issues The main star of the show is Barotrauma::ACsMod class It is what all your mods will use to hook game methods and execute custom code All utility classes can be accessed either by their type i.e that have name that starts with LuaCs or through GameMain.LuaCs property refer to class documentation All C code files must be located in mod_root otherwise they won t be compiled Additionally you can specify what code runs where by either filepath or pre-processor statements In case of filepath your files must be located in either CSharp/Shared/* CSharp/Server/* or CSharp/Client/* for shared code server-side code or client-side code respectively in any other case the code is assumed to be shared I case of pre-processor you can use SERVER or CLIENT definitions to separate code into server-side code and client-side code respectively Some classes e.g almost all System.IO is prohibited to thwart malicious mods although current white-listing prohibits reflection so no mod can be considered inherently safe In above case one must use LuaCs classes to get access to system resources or similar things if any If you want for your mod to inherently be turned on client-side when it is enabled you must create a dummy xml file A generic C mod boilerplate File-tree mod_root cs mod_root cs mod_root cs mod_root xml Server documentation Client documentation</field>
</doc>
</add>