mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-23 17:43:36 +00:00
Added Doxygen + GitHub Pages
This commit is contained in:
parent
7d81f1597d
commit
07ab03d812
43
.github/workflows/build-doxygen.yml
vendored
Normal file
43
.github/workflows/build-doxygen.yml
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["dev"]
|
||||
pull_request:
|
||||
branches: ["dev"]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Doxygen
|
||||
run: sudo apt-get update && sudo apt-get install -y doxygen graphviz
|
||||
- name: Update doxygen-awesome
|
||||
run: git submodule update --init --recursive
|
||||
- name: Generate Docs
|
||||
run: cd docs && doxygen
|
||||
- name: Configure Pages
|
||||
uses: actions/configure-pages@v4
|
||||
- name: Upload Pages Artifacts
|
||||
uses: actions/upload-pages-artifact@v4
|
||||
with:
|
||||
path: ./docs/html
|
||||
deploy:
|
||||
needs: build
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- name: Deploy Github Pages
|
||||
uses: actions/deploy-pages@v4
|
||||
id: deployment
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -46,3 +46,6 @@ oldimpl/
|
|||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# ----- Documentation -----
|
||||
docs/
|
||||
|
|
|
|||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[submodule "docs/doxygen-awesome-css"]
|
||||
path = docs/doxygen-awesome-css
|
||||
url = https://github.com/jothepro/doxygen-awesome-css.git
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Minecraft.Client asset structure
|
||||
# Minecraft.Client Asset Structure
|
||||
This is the minimum asset structure needed for the game to function.
|
||||
```
|
||||
AssetStructure
|
||||
|
|
@ -26,7 +26,7 @@ AssetStructure
|
|||
└── *.binka
|
||||
```
|
||||
## Windows64Media.arc contents
|
||||
The potential contents of the the arc file can be seen in the `.txt` files in this folder (`movies.txt`, `media.txt`, etc...).
|
||||
The contents of the the arc file can be seen in the `.txt` files in this folder (`movies.txt`, `media.txt`, etc...).
|
||||
- `languages.loc` is built from `Platform/Windows64Media/loc`
|
||||
- `HTMLColours.col` is built from `HTMLColours.xml`
|
||||
```
|
||||
|
|
@ -44,12 +44,12 @@ MediaWindows64.arc
|
|||
```
|
||||
## Asset locations
|
||||
### Generic assets should be contained inside this folder:
|
||||
- `movies/` - Flash swf files for UI
|
||||
- `graphics/` - contains images used by the client (only `SaveChest.png` `MinecraftIcon.png`, `TexturePackIcon.png` are packed into the arc)
|
||||
- `font/` - fonts, duh
|
||||
- `res/` - actual minecraft textures and other data
|
||||
- `music/` - contains background music as well as music discs
|
||||
- `levels/` - contains some premade worlds (`Tutorial` is unused as we pull it from somewhere else, atleast on Windows64 asset base)
|
||||
- `movies/` - Flash SWF files for Iggy
|
||||
- `graphics/` - Contains images used by the client (only `SaveChest.png` `MinecraftIcon.png`, `TexturePackIcon.png` are packed into the arc)
|
||||
- `font/` - Fonts, duh
|
||||
- `res/` - Textures and other miscellaneous data
|
||||
- `music/` - Contains background music as well as music discs
|
||||
- `levels/` - Contains some premade worlds (`Tutorial` is unused as we pull it from somewhere else, atleast on Windows64 asset base)
|
||||
### Platform assets are contained in Minecraft.Client/Platform/
|
||||
- `Windows64Media/loc/` - Localisation/language data that we use as a source to build the languages.loc (this file gets included in arc)
|
||||
- `Windows64Media/Media/` - Contains a bunch of Windows64 customised swfs and also the tutorial level (`Tutorial.pck`), these should be included in arc
|
||||
|
|
|
|||
48
Minecraft.Client/Network Implementation Notes.md
Normal file
48
Minecraft.Client/Network Implementation Notes.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Network Code Implementation Notes
|
||||
|
||||
## Overview
|
||||
|
||||
The networking classes are organized as follows:
|
||||
|
||||
```
|
||||
Game \
|
||||
^ |
|
||||
| |
|
||||
+-----------------------------+-----------------------------+ |
|
||||
| | |
|
||||
v v |
|
||||
Game Network Manager <--------------------------------> Network Player Interface |- platform independent layers
|
||||
^ ^ |
|
||||
| | |
|
||||
v | |
|
||||
Platform Network Manager Interface | |
|
||||
^ | /
|
||||
| |
|
||||
v v \
|
||||
Platform Network Manager Implementation(1) <------> Network Player Implementation (3) |
|
||||
^ ^ |_ platform specific layers
|
||||
| | |
|
||||
v v |
|
||||
Platform specific network code(2) Platform specific player code (4) /
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
- In general the game should **only communicate with the `GameNetworkManager` and `NetworkPlayerInterface` APIs**, which provide a platform independent interface for networking functionality. The `GameNetworkManager` may in general have code which is aware of the game itself, but it *shouldn't have any platform-specific networking code*. It communicates with a platform specific implementation of a `PlatformNetworkManagerInterface` to achieve this.
|
||||
|
||||
- The platform specific layers shouldn't contain any general game code, as this is much better placed in the platform independent layers to avoid duplicating effort.
|
||||
|
||||
- Platform specific files for each platform for the numbered classes in the previous diagram are currently:
|
||||
|
||||
|
||||
## Platform-Specific Files
|
||||
|
||||
The platform-specific implementations for each numbered class in the diagram:
|
||||
|
||||
| Class | Xbox 360 | Sony | Other |
|
||||
|-------|---------------------------------|----------------------------|-----------------------|
|
||||
| (1) | PlatformNetworkManagerXbox | PlatformNetworkManagerSony | PlatformNetworkManagerStub |
|
||||
| (2) | Provided by QNET | SQRNetworkManager | Qnet stub* |
|
||||
| (3) | NetworkPlayerXbox | NetworkPlayerSony | NetworkPlayerXbox |
|
||||
| (4) | Provided by QNET | SQRNetworkPlayer | Qnet stub* |
|
||||
\*Temporarily provided by `extra64.h`
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
NETWORK CODE IMPLEMENTATION NOTES
|
||||
---------------------------------
|
||||
|
||||
The networking classes are organised as follows:
|
||||
|
||||
Game \
|
||||
^ |
|
||||
| |
|
||||
+-----------------------------+-----------------------------+ |
|
||||
| | |
|
||||
v v |
|
||||
Game Network Manager <--------------------------------> Network Player Interface |- platform independent layers
|
||||
^ ^ |
|
||||
| | |
|
||||
v | |
|
||||
Platform Network Manager Interface | |
|
||||
^ | /
|
||||
| |
|
||||
v v \
|
||||
Platform Network Manager Implementation(1) <------> Network Player Implementation (3) |
|
||||
^ ^ |_ platform specific layers
|
||||
| | |
|
||||
v v |
|
||||
Platform specific network code(2) Platform specific player code (4) /
|
||||
|
||||
|
||||
In general the game should only communicate with the GameNetworkManager and NetworkPlayerInterface APIs, which provide a platform independent
|
||||
interface for networking functionality. The GameNetworkManager may in general have code which is aware of the game itself, but it shouldn't have
|
||||
any platform-specific networking code. It communicates with a platform specific implementation of a PlatformNetworkManagerInterface to achieve this.
|
||||
|
||||
The platform specific layers shouldn't contain any general game code, as this is much better placed in the platform independent layers to avoid
|
||||
duplicating effort.
|
||||
|
||||
Platform specific files for each platform for the numbered classes in the previous diagram are currently:
|
||||
|
||||
|
||||
Xbox 360 Sony Other
|
||||
|
||||
(1) PlatformNetworkManagerXbox PlatformNetworkManagerSony PlatformNetworkManagerStub
|
||||
(2) Provided by QNET SQRNetworkManager Qnet stub*
|
||||
(3) NetworkPlayerXbox NetworkPlayerSony NetworkPlayerXbox
|
||||
(4) Provided by QNET SQRNetworkPlayer Qnet stub*
|
||||
|
||||
*temporarily provided by extra64.h
|
||||
|
||||
3060
docs/Doxyfile
Normal file
3060
docs/Doxyfile
Normal file
File diff suppressed because it is too large
Load diff
1
docs/doxygen-awesome-css
Submodule
1
docs/doxygen-awesome-css
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 1f3620084ff75734ed192101acf40e9dff01d848
|
||||
28
docs/doxymain.md
Normal file
28
docs/doxymain.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Welcome to the 4JCraft Docs!
|
||||
> A cross-platform port of \htmlonly Minecraft\endhtmlonly Legacy Console Edition
|
||||
|
||||
4JCraft is a modified version of the \htmlonly Minecraft\endhtmlonly Console Legacy Edition aimed on porting old \htmlonly Minecraft\endhtmlonly to different platforms (such as Linux, Android, Emscripten, etc.) and refactoring the codebase to improve organization and use modern C++ features.
|
||||
|
||||
For more info please read the [README](https://github.com/4jcraft/4jcraft/blob/dev/README.md)
|
||||
|
||||
Join our community!
|
||||
|
||||
\htmlonly
|
||||
<style>
|
||||
html.dark-mode a.invert-dark img {
|
||||
filter: invert(1) brightness(1.1);
|
||||
transition: filter 0.3s ease;
|
||||
}
|
||||
|
||||
html.light-mode a.invert-dark img {
|
||||
filter: invert(0);
|
||||
}
|
||||
</style>
|
||||
<br>
|
||||
\endhtmlonly
|
||||
<a href="https://discord.gg/zFCwRWkkUg" class="invert-dark" style="margin-right:16px; display:inline-block;">
|
||||
<img src="https://raw.githubusercontent.com/simple-icons/simple-icons/f89e1dfeb23652c02af7d3400fa16452b04c10f5/icons/discord.svg" width="64" height="64">
|
||||
</a>
|
||||
<a href="https://steamcommunity.com/groups/4JCraft" class="invert-dark" style="margin-right:10px; display:inline-block;">
|
||||
<img src="https://raw.githubusercontent.com/simple-icons/simple-icons/f89e1dfeb23652c02af7d3400fa16452b04c10f5/icons/steam.svg" width="64" height="64">
|
||||
</a>
|
||||
33
docs/header.html
Normal file
33
docs/header.html
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<title>$projectname - $title</title>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeDarkModeToggle.init()
|
||||
</script>
|
||||
<link rel="icon" href="https://raw.githubusercontent.com/4jcraft/4jcraft/refs/heads/dev/.github-assets/logo.jpg" type="image/x-icon">
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
|
||||
<div style="display: flex; align-items: center; padding: 10px 0 10px 20px;">
|
||||
<img src="https://raw.githubusercontent.com/4jcraft/4jcraft/dev/.github-assets/logo.jpg"
|
||||
alt="$projectname logo"
|
||||
style="height:60px; margin-right:10px;">
|
||||
<span style="font-size: 1.8em; font-weight: bold;">$projectname</span>
|
||||
</div>
|
||||
</head>
|
||||
Loading…
Reference in a new issue