mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Fixing typos and added text for Automatic dynamic loading and IDEs
This commit is contained in:
parent
0ee7a38c61
commit
51f134538d
@ -26,21 +26,21 @@ files on [GitHub] with a browser. But using [Git] will ease up the steps to keep
|
||||
the Moose version on your hard disk up to date.
|
||||
|
||||
You will need to interact with [GitHub]. At least to download the Moose files.
|
||||
For non developers the page can be confusing. Take your time and read this
|
||||
For non-developers the page can be confusing. Take your time and read this
|
||||
documentation. We are not able to explain every single detail on using [GitHub]
|
||||
and [Git]. Especially because it is changing really quick and this documentaion
|
||||
and [Git]. Especially because it is changing really quick and this documentation
|
||||
will not. So try to use the help system of [GitHub] or find some videos on
|
||||
[YouTube]. If you get stuck ask for help in the [Moose Discord].
|
||||
|
||||
Moose uses more then one repository on [GitHub] which doesn't exactly make it
|
||||
Moose uses more than one repository on [GitHub] which doesn't exactly make it
|
||||
any clearer. A list can be found on the [reposities] page.
|
||||
|
||||
# Branches: master & develop
|
||||
|
||||
As already explained in the [overview] two branches are used:
|
||||
|
||||
- [master]: Stable release branch.
|
||||
- [develop]: Newest development with more OPS classes.
|
||||
- Branch [master]: Stable release branch.
|
||||
- Branch [develop]: Newest development with more OPS classes.
|
||||
|
||||
As a starter it is okay to begin your journey with the `master` branch.
|
||||
If you are interested in some newer classes you need to use the `develop`
|
||||
@ -48,8 +48,8 @@ branch. The later one is also very stable, but it's missing more detailed
|
||||
documentation and example missions for some of the new OPS classes.
|
||||
|
||||
You can switch between these branches with a drop down in the upper left corner
|
||||
of th [GitHub] repository page. The list of branches is long. So it is a best
|
||||
practise to save a bookmark in your browser with the links above.
|
||||
of the [GitHub] repository page. The list of branches is long. So it is a best
|
||||
practice to save a bookmark in your browser with the links above.
|
||||
Both branches are available on most of the different repositories. But because
|
||||
of a limitation of [GitHub pages], we had to split the documentation in two
|
||||
different repositories:
|
||||
@ -61,7 +61,7 @@ different repositories:
|
||||
|
||||
Moose consists of more than 140 individual files with the file extension `.lua`.
|
||||
They are places in a [directory tree], which makes it more organized and its
|
||||
semantic is pre-defined for IntelliSense to work.
|
||||
semantic is pre-defined for [IntelliSense] to work.
|
||||
|
||||
On every change which is pushed to [GitHub] a build job will combine all of
|
||||
these files to a single file called `Moose.lua`. In a second step all
|
||||
@ -69,9 +69,9 @@ comments will be removed to decrease the file size and the result will be saved
|
||||
as `Moose_.lua`. These both files are created for users of Moose to include in
|
||||
your missions.
|
||||
|
||||
The individual `.lua` files are used by the Mosse developers and power users.
|
||||
The individual `.lua` files are used by the Moose developers and power users.
|
||||
It is complicated to use them, but in combination with an IDE and a debugger it
|
||||
is very usefull to analyse even complex problems or write new additions to the
|
||||
is very useful to analyze even complex problems or write new additions to the
|
||||
Moose framework.
|
||||
|
||||
# Static loading
|
||||
@ -84,7 +84,7 @@ with another file ending.
|
||||
If you change the script file after adding it to the mission, the changes are
|
||||
not available on mission start. You have to re-add the script after each change.
|
||||
This can be very annoying and often leads to forgetting to add the change again.
|
||||
Then you wonder why the script does not deliver the desired result.
|
||||
Then you wonder why the mission does not deliver the desired result.
|
||||
|
||||
But when the mission is finished you can upload it to your dedicated DCS server
|
||||
or give it to a friend and it should run without problems. This way of embedding
|
||||
@ -95,7 +95,7 @@ portable.
|
||||
|
||||
The other way of loading scripts is by using `DO SCRIPT`. This time the mission
|
||||
editor don't show a file browse button. Instead you see a (very small) text
|
||||
field to enter the code directly into it. It is only usefull for very small
|
||||
field to enter the code directly into it. It is only useful for very small
|
||||
script snippets. But we can use it to load a file from your hard drive like
|
||||
this:
|
||||
|
||||
@ -107,14 +107,14 @@ dofile([[C:\MyScripts\hello-world.lua]])
|
||||
|
||||
So all lines above do the same. In [Lua] you need to specify the path with
|
||||
slashes, escape backslashes or use double square brackets around the string.
|
||||
But double square brackets is usefull, because you can copy paste the path
|
||||
Double square brackets are usefull, because you can copy paste the path
|
||||
without any modification.
|
||||
|
||||
If you upload a mission with this code, you need to create the folder
|
||||
`C:\MyScripts\` on the server file system and upload the newest version of
|
||||
`hello-world.lua`, too. The same applies if you give the mission to a friend.
|
||||
`hello-world.lua`, too. The same applies, if you give the mission to a friend.
|
||||
This makes the mission less portable, but on the other hand the mission uses the
|
||||
file on the hard disk without the need to add it to the mission again.
|
||||
file on the hard disk, without the need to add it to the mission again.
|
||||
All you need to do is save the file and restart the mission.
|
||||
|
||||
The following can be used to increase portability:
|
||||
@ -129,7 +129,7 @@ structure is already available on all target systems. But you need to ensure
|
||||
mission and script are both in sync to avoid problems. If you changed both and
|
||||
upload only one of them to your server, you may get trouble.
|
||||
|
||||
There is another method you may find usefull to dynamically load scripts:
|
||||
There is another method you may find useful to dynamically load scripts:
|
||||
|
||||
```lua
|
||||
assert(loadfile('C:/MyScripts/hello-world.lua'))()
|
||||
@ -138,7 +138,7 @@ assert(loadfile([[C:\MyScripts\hello-world.lua]]))()
|
||||
```
|
||||
|
||||
It is a little bit harder to read and write because of all these different
|
||||
brackets. Especially the one on line 3. But it is a little safer then `dofile`.
|
||||
brackets. Especially the one on line 3. But it is a little safer than `dofile`.
|
||||
Because of readability I prefer to use `dofile`.
|
||||
|
||||
# Dynamic loading of Moose
|
||||
@ -150,11 +150,31 @@ will use the new version. But I prefer to add Moose by a `DO SCRIPT FILE`
|
||||
trigger so I can add and test the new version for each mission step by step.
|
||||
|
||||
But we added two different ways to load the Moose source files automatically.
|
||||
This is usefull for Moose developers and it is a requirement to use a debugger.
|
||||
This is useful for Moose developers and it is a requirement to use a debugger.
|
||||
This will be explained later in the [Debugger Guide].
|
||||
|
||||
# Automatic dynamic loading
|
||||
|
||||
With the code below you can have the advantages of both approaches.
|
||||
- Copy the code into your mission script at the beginning.
|
||||
- Save the mission script into the folder Missions in your [Saved Games folder].
|
||||
- Change script filename in line 2 to match to your script.
|
||||
- [De-Sanitize] your `MissionScripting.lua`.
|
||||
|
||||
Now the mission will use the script on your hard drive instead of the script
|
||||
embedded in th MIZ file, as long as it is available. So you can chnge the
|
||||
script, save it and restart the mission, without the need to readd it after each
|
||||
change.
|
||||
|
||||
If you reach a stable state in your script development and want to upload the
|
||||
mission to your server or give it to a friend, then just add the script again
|
||||
like in the static method and save the mission.
|
||||
|
||||
{: .important }
|
||||
> Do not forget to readd the script, prior uploading or sharing the mission,
|
||||
> or it will run with an outdated version of your script and may fail if the
|
||||
> objects in the mission don't match to this old version.
|
||||
|
||||
```lua
|
||||
-- Use script file from hard disk instead of the one included in the .miz file
|
||||
if lfs and io then
|
||||
@ -165,13 +185,13 @@ if lfs and io then
|
||||
if f~=nil then
|
||||
io.close(f)
|
||||
|
||||
env.info( '*** LOAD MOOSE MISSION SCRIPT FROM HARD DISK *** ' )
|
||||
env.info( '*** LOAD MISSION SCRIPT FROM HARD DISK *** ' )
|
||||
dofile(MissionScript)
|
||||
do return end
|
||||
end
|
||||
end
|
||||
else
|
||||
env.error( '*** LOAD MOOSE MISSION SCRIPT FROM HARD DISK FAILED (Desanitize lfs and io)*** ' )
|
||||
env.error( '*** LOAD MISSION SCRIPT FROM HARD DISK FAILED (Desanitize lfs and io)*** ' )
|
||||
end
|
||||
|
||||
--
|
||||
@ -182,7 +202,41 @@ MESSAGE:New( "Hello World! This messages is printed by MOOSE!", 35, "INFO" ):ToA
|
||||
|
||||
# IDE vs. Notepad++
|
||||
|
||||
As a beginner you should start with a good text editor, which supports syntax
|
||||
highlighting of [Lua] code. This must not be [Notepad++]. It can be any other
|
||||
powerful editor of your choice. Do yourself a favor and don't use the Windows
|
||||
editor.
|
||||
|
||||
If you are a developer of [Lua] or another programming language, then your are
|
||||
most likely familiar with an IDE (Integrated Develop Environment).
|
||||
|
||||
Otherwise you should know, that an IDE may help you with code completion,
|
||||
Refactoring, Autocorrection, Formatting Source Code, showing documentation
|
||||
as popup on mouse hover over keywords and Debugging.
|
||||
|
||||
There are different IDEs available. And not all IDEs support all features.
|
||||
The three most important for Moose are:
|
||||
|
||||
- [Eclipse LDT]
|
||||
- [Visual Studio Code]
|
||||
- [PyCharm] (or [IntelliJ IDEA])
|
||||
|
||||
Eclipse has the best support for hover documentation and [IntelliSense] with
|
||||
Moose. The Inventor of Moose (FlightControl) did an amazing job by adding an
|
||||
integration to Eclipse LDT (a special version for Lua).
|
||||
Unfortunately Eclipse LDT is not maintained any longer (last release 2018).
|
||||
And the debugger doesn't work anymore, since an update of DCS.
|
||||
|
||||
In Visual Studio Code the support of Lua can be added by an addon.
|
||||
The debugger works with Moose and DCS, but showing the LuaDoc and [IntelliSense]
|
||||
is very limited.
|
||||
|
||||
PyCharm supports Lua also with an addon. The debugger works with Moose and DCS,
|
||||
but showing the LuaDoc and [IntelliSense] is very limited.
|
||||
|
||||
It is up to you to choose the IDE according to your taste. Guides on how to
|
||||
setup Moose with different IDEs and Debuggers are provided later in this
|
||||
documentation.
|
||||
|
||||
[Git]: https://en.wikipedia.org/wiki/Git
|
||||
[GitHub]: https://github.com/
|
||||
@ -200,3 +254,10 @@ MESSAGE:New( "Hello World! This messages is printed by MOOSE!", 35, "INFO" ):ToA
|
||||
[Lua]: https://www.lua.org/
|
||||
[Create your own Hello world]: ../beginner/hello-world-build.md
|
||||
[Debugger Guide]: debugger.md
|
||||
[IntelliSense]: https://en.wikipedia.org/wiki/IntelliSense
|
||||
[De-Sanitize]: desanitize-dcs.md
|
||||
[Notepad++]: https://notepad-plus-plus.org/downloads/
|
||||
[Eclipse LDT]: https://projects.eclipse.org/projects/tools.ldt
|
||||
[Visual Studio Code]: https://code.visualstudio.com/
|
||||
[PyCharm]: https://www.jetbrains.com/pycharm/
|
||||
[IntelliJ IDEA]: https://www.jetbrains.com/idea/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user