You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Docs/Architecture.md
+40-1Lines changed: 40 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,29 @@
1
1
# Open Rails Architecture
2
2
3
-
This document will describe the overall structure of Open Rails and how we expect different areas of the program to work together.
3
+
This document describes the overall structure of Open Rails and how we expect different areas of the program to work together.
4
+
5
+
## Player application model
6
+
7
+
The player application model describes the desired components and their relationships which make up Open Rails. Each of these will be formed from one or more libraries, as needed, and each library may contain distinct but critically linked subfunctions.
8
+
9
+
```mermaid
10
+
flowchart TB
11
+
Formats["Orts.Formats"]
12
+
Game["Orts.Game"]
13
+
Input["Orts.Input"]
14
+
Multiplayer["Orts.Multiplayer"]
15
+
Parsers["Orts.Parsers"]
16
+
Player["Player"]
17
+
Simulation["Orts.Simulation"]
18
+
Sound["Orts.Sound"]
19
+
UI["Orts.UI"]
20
+
Viewer["Orts.Viewer"]
21
+
Web["Orts.Web"]
22
+
Player --- Game --- UI --- Viewer --- Simulation & Formats
23
+
Player --- Input --- UI & Simulation
24
+
Sound --- Simulation --- Formats & Multiplayer & Web
25
+
Formats --- Parsers
26
+
```
4
27
5
28
## Threading model
6
29
@@ -29,6 +52,22 @@ The threading in Open Rails has two key threads working together (Render and Upd
29
52
- Web Server process
30
53
- Handle all web and API requests
31
54
55
+
## Projects, assemblies, namespaces
56
+
57
+
Open Rails is made up of several component projects which are organised into subdirectories with the following naming pattern:
This tree is a summary of the important object relationships (aggregation) inside the simulation. Each entry is a class whose instances can be accessed from the parent item.
Copy file name to clipboardExpand all lines: Docs/Contributing.md
+19-5Lines changed: 19 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,21 +18,35 @@ If you've got a feature suggestion for Open Rails, please report it in [our road
18
18
19
19
You are free to make any modifications to the Open Rails code that you like; that's how open source works. However, if you'd like your feature to be included in the official version, there is a process to ensure that the community agrees and to review the code for potential issues prior to inclusion.
20
20
21
-
In most cases, you can get started immediately with making the changes and creating a pull request. We do ask for some additional steps to be taken for some bugs and all new features, but they can come before or after the pull request. Please feel free to share ideas and proposals as pull requests!
21
+
In most cases, you can get started immediately with making the changes and creating a pull request. We have _additional requirements_for some bugs and all new features, but they can come before or after the pull request is created. Please feel free to share ideas and proposals as pull requests!
22
22
23
-
**Note:** You must start your work from the "master" branch and merged pull requests back into the "master" branch, unless we direct you otherwise.
23
+
**Note:** You must fork the Open Rails repository before you start working on it. We do not allow you to push branches to the official repository.
24
+
25
+
**Note:** You should do your work on separate branches; they must be created from the "master" branch and pull requests must merge back into the "master" branch, unless we direct you otherwise.
24
26
25
27
### Documentation and translations
26
28
27
29
If you'd like to improve the [documentation](./), [manual](../Source/Documentation/Manual), or [translations](../Source/Locales) you can get started immediately.
28
30
29
-
There are no requirements for the pull request.
31
+
There are no additional requirements for the pull request.
32
+
33
+
### Contributed projects
34
+
35
+
If you'd like to improve the [contributed projects](../Source/Contrib) you can get started immediately.
36
+
37
+
There are no additional requirements for the pull request.
38
+
39
+
### Refactoring process
40
+
41
+
If you'd like to refactor the existing code you can get started immediately, but please have a look at our [architecture requirements](#architecture-requirements). We welcome architectural discussions on our [forum](http://www.elvastower.com/forums/index.php?/forum/256-developing-features/).
42
+
43
+
There are no additional requirements for the pull request.
30
44
31
45
### Bug process
32
46
33
47
If you'd like to fix a bug, you can get started immediately. If the fix turns out to be very small, you do not even need a bug report. Otherwise, you will need to make sure it has been reported on [our bug tracker on Launchpad](https://bugs.launchpad.net/or). If it has not, you can report the bug *and* fix it!
34
48
35
-
There are no requirements for creating the pull request.
49
+
There are no additional requirements for _creating_ the pull request.
36
50
37
51
These things must be done in the required order:
38
52
@@ -154,7 +168,7 @@ When we start preparing for a new Stable Version, all code in the Testing Versio
154
168
155
169
### Submitting your code
156
170
157
-
When you're done writing code, you should make a pull request on GitHub. The title and description of the requests should concisely indicate what bug or feature you've implemented and you will need to include links to whichever of the following are appropriate:
171
+
When you're done writing code, you should make a pull request on GitHub from your fork's branch back to the official repository's "master" branch. The title and description of the requests should concisely indicate what bug or feature you've implemented and you will need to include links to whichever of the following are appropriate:
Copy file name to clipboardExpand all lines: Docs/Readme.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Open Rails is a free train simulator supporting the world's largest range of dig
10
10
## Documentation
11
11
12
12
*[Read the FAQ](http://www.openrails.org/learn/faq/?utm_campaign=documentation&utm_source=readme&utm_medium=referral)
13
-
*[Read the manual online](https://open-rails.readthedocs.io/en/1.3.1/) or the PDF included with the program, found in the main menu under "Documents"
13
+
*[Read the manual online](https://open-rails.readthedocs.io/en/latest/) or the PDF included with the program, found in the main menu under "Documents"
14
14
*[Get additional materials, including tutorials, from our website](http://www.openrails.org/learn/manual-and-tutorials/?utm_campaign=documentation&utm_source=readme&utm_medium=referral)
15
15
*[Read more about the project on our website](http://www.openrails.org/discover/open-rails/?utm_campaign=documentation&utm_source=readme&utm_medium=referral)
0 commit comments