Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77f4c41a6b | ||
|
|
07a234489f | ||
|
|
e363b3fe94 | ||
|
|
b68f95b748 | ||
|
|
8341a5fb6d | ||
|
|
e32518f48d | ||
|
|
2e7a930473 |
@@ -1,53 +1,43 @@
|
|||||||
# Spearhead
|
# Spearhead
|
||||||
|
|
||||||
|
Hello and welcome to Spearhead!
|
||||||
|
|
||||||
## Contributing.
|
If you're a developer that wants to contribute, look at the code or understand what we're doing, feel free to read on.
|
||||||
|
|
||||||
I'm always happy to see contributions! <br/>
|
If you're a mission maker that wants to see the documentation and build you mission with this framework. <br>
|
||||||
Especially if you've found an issue, annoyance or feature that you know how to solve, fix or create! <br/>
|
It's best to go to our fully fledged documentation website:
|
||||||
|
- Stable/Main: https://spearhead.rocks
|
||||||
|
- Beta/Develop: https://beta.spearhead.rocks
|
||||||
|
|
||||||
### Keep it small.
|
## Project Structure
|
||||||
|
|
||||||
Keeping your contributions small and to the point helps both me and yourself. <br/>
|
The Spearhead project is structured in a lot of separate files. <br>
|
||||||
It'll help the PR review and the speed of improvements. <br/>
|
While Lua isn't specifically created for it, most of it has been written with the standards of OOP in mind. <br>
|
||||||
If you have a big feature in mind? Go for it! <br/>
|
Classes, Objects and helper methods.
|
||||||
Does it require an entire refactor of parts or all of the program? Maybe make sure to do step 0 first.
|
|
||||||
|
|
||||||
### Steps (for first timers)
|
You're find in the `/src` folder all the files. <br>
|
||||||
0. Reach out (Optional)
|
They are separated in a somewhat logical order, but some things might feel out of place. <br>
|
||||||
|
|
||||||
If you want to let me know you want to do something to contribute, please do! <br/>
|
### Bundling, Intellisense, Linting
|
||||||
Maybe I'm already working on the thing you wanted to build, or someone else is. <br/>
|
|
||||||
Creating an issue is even better! <br/>
|
|
||||||
|
|
||||||
|
In DCS the easiest way to import a script is with 1 single file, however, that's not as "maintainable".
|
||||||
|
In order to keep it maintainable we're using a self-built tool to bundle, validate and rewrite some of the lua in order to get it into a single file.
|
||||||
|
The tool is open-source here: https://git.dutchie031.com/dutchie031/DcsMissionScriptingTools. <br>
|
||||||
|
It has a `VSCode` extensions and two `Github Action` steps. <br>
|
||||||
|
If your favorite IDE isn't `VSCode` (I respect that), it might be very easy to create an extension for it, if it does allow that.
|
||||||
|
|
||||||
1. Fork the repository
|
The `VSCode` extensions comes with Intellisense as well, in the form of a full file of DCS lua type annotations. <br>
|
||||||
|
This gives the Lua Language Server by Sumneko (which can be used in `VSCode`) all the type definitions it needs.
|
||||||
|
When writing Spearhead code it is also important to keep our own LuaLS Annotations up to date and complete. <br>
|
||||||
|
Read all about those annotations here: https://luals.github.io/wiki/annotations/
|
||||||
|
|
||||||
By forking you can create your own working set of code. <br/>
|
When a pull-request to the `develop` or `main` branches is created, before it can be merged it requires to pass the linter checks.
|
||||||
Whether you keep that fork public or private is up to you! <br/>
|
The first linting check is done by the Lua Language Server. It checks for whitespace and formatting, but it also checks if all types, type-checking and casts are in order. It marks unused variables etc. `.luarc.json` has all the config for those checks. <br>
|
||||||
|
The second linter job is with `luacheck` which first "bundles" the script, and then runs a full linter check over the bundled script. <br>
|
||||||
|
This is to make sure that also the bundled script does not contain any errors.
|
||||||
|
|
||||||
Keep in mind, forking is alright, but it's best with the intent to contribute back. <br/>
|
## Contributing
|
||||||
After all, instead of having 5 slightly different versions and products, it might be nicer to have 1 much better version. <br/>
|
|
||||||
|
|
||||||
2. Create a Draft PR as soon as possible!
|
### Setting up the project
|
||||||
|
|
||||||
As soon as you've found some times to create an initial version, please create a draft PR. <br/>
|
If you've kept on reading I assume you either want to brwose
|
||||||
That way you can let me and everyone know it's being worked on and people can see what conflicts might arise with their own changes. <br/>
|
|
||||||
|
|
||||||
3. Test, test, test
|
|
||||||
|
|
||||||
With DCS and Lua there's a bunch of edge cases that are really hard to get to. <br/>
|
|
||||||
However, you kinda need to make sure most if not all cases are caught and tested. <br/>
|
|
||||||
Since automated testing for now doesn't seem feasible, please make sure to verify and test functionality after touching stuff. <br/>
|
|
||||||
|
|
||||||
4. Finalise and publish the PR.
|
|
||||||
|
|
||||||
Finalise the PR and let the maintainers know! <br/>
|
|
||||||
We can all have a look and discuss the changes. <br/>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# TODO:
|
|
||||||
|
|
||||||
- Would it be possible to generate optional markers on mission briefing locations for Tomcat / Phantom navigation? Then Jester can type it in for the pilots automatically.
|
|
||||||
+87
-90
@@ -1,90 +1,87 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Issue: #41
|
- Addresses #41
|
||||||
Adds Stage Complete debug methods for local testing of the Stage flow.
|
Adds Stage Complete debug methods for local testing of the Stage flow.
|
||||||
#40
|
PR #40
|
||||||
|
- Closes #35
|
||||||
- Issue: #35
|
Creating Lane option for stages.
|
||||||
Creating Lane option for stages.
|
Additionally to the primary stage lane, stages can now be created in different lanes.
|
||||||
Additionally to the primary stage lane, stages can now be created in different lanes.
|
These lanes can be used to create different stage progression flows and create different "side-stories".
|
||||||
These lanes can be used to create different stage progression flows and create different "side-stories".
|
PR #40
|
||||||
#40
|
- Closes #37
|
||||||
|
Now enabled the mission editor to add a custom briefing to the "Buildable" missions.
|
||||||
- Issue: #37
|
PR #44
|
||||||
Now enabled the mission editor to add a custom briefing to the "Buildable" missions.
|
- Closes #42
|
||||||
#44
|
DEEPSTRIKE now added as a possible feature.
|
||||||
|
This enables to have missions active in "Pre-Activated" Stages.
|
||||||
- Issue: #42
|
PR #48
|
||||||
DEEPSTRIKE now added as a possible feature.
|
|
||||||
This enables to have missions active in "Pre-Activated" Stages.
|
### Bug Fixes
|
||||||
#48
|
|
||||||
|
## [0.13.0] 2026-08
|
||||||
### Bug Fixes
|
|
||||||
|
A good first release that finally has all major bugs fixed that were caused by the migration from both the underlying script transpiler and the migration to Gitea.
|
||||||
## [0.13.0] 2026-08
|
|
||||||
|
### Breaking Changes
|
||||||
A good first release that finally has all major bugs fixed that were caused by the migration from both the underlying script transpiler and the migration to Gitea.
|
|
||||||
|
### New Features
|
||||||
### Breaking Changes
|
|
||||||
|
- Issue #26
|
||||||
### New Features
|
Possibility to have Stage Overview briefings (which include current missions sorted by distance) to be shown on spawning of a player.
|
||||||
|
PR #31
|
||||||
- Issue #26
|
|
||||||
Possibility to have Stage Overview briefings (which include current missions sorted by distance) to be shown on spawning of a player.
|
### Bug Fixes
|
||||||
PR #31
|
|
||||||
|
- Issue #11
|
||||||
### Bug Fixes
|
Supply crate spawning now checks for free space and will not spawn if the area is too crowded.
|
||||||
|
Additionally different units will spawn in different areas depending on loading side.
|
||||||
- Issue #11
|
PR #17
|
||||||
Supply crate spawning now checks for free space and will not spawn if the area is too crowded.
|
- Fixed command wiring for supply hubs for better and more accurate detection of units spawning and entering/exiting zone.
|
||||||
Additionally different units will spawn in different areas depending on loading side.
|
PR #15
|
||||||
PR #17
|
- Fixed custom drawings not being drawn correctly.
|
||||||
- Fixed command wiring for supply hubs for better and more accurate detection of units spawning and entering/exiting zone.
|
PR #18
|
||||||
PR #15
|
- Fixed CAP Callbacks not working since the change to a transpiled script. Now a global callback circumvents this issue.
|
||||||
- Fixed custom drawings not being drawn correctly.
|
PR #18
|
||||||
PR #18
|
- Fixed #9
|
||||||
- Fixed CAP Callbacks not working since the change to a transpiled script. Now a global callback circumvents this issue.
|
Changed order of checking mission briefings
|
||||||
PR #18
|
PR #19
|
||||||
- Fixed #9
|
- Fixed Configuration defaulting to true for all booleans in StageConfig
|
||||||
Changed order of checking mission briefings
|
PR #28
|
||||||
PR #19
|
- Fixed Pre-Activated stages not always drawing or pre-activating correctly.
|
||||||
- Fixed Configuration defaulting to true for all booleans in StageConfig
|
PR #28
|
||||||
PR #28
|
- Addressed #24
|
||||||
- Fixed Pre-Activated stages not always drawing or pre-activating correctly.
|
CAP max commit range is now configurable in the config.lua file.
|
||||||
PR #28
|
Issue remains open in order to apply further fine grained tuning.
|
||||||
- Addressed #24
|
PR #29
|
||||||
CAP max commit range is now configurable in the config.lua file.
|
|
||||||
Issue remains open in order to apply further fine grained tuning.
|
## [0.12.0] 2026-06
|
||||||
PR #29
|
|
||||||
|
Migration to Gitea. <br>
|
||||||
## [0.12.0] 2026-06
|
First version of the Gitea repository. <br>
|
||||||
|
Everything is new, but also old.
|
||||||
Migration to Gitea. <br>
|
|
||||||
First version of the Gitea repository. <br>
|
### Breaking Changes
|
||||||
Everything is new, but also old.
|
|
||||||
|
Nothing worth mentioning
|
||||||
### Breaking Changes
|
|
||||||
|
### New Features
|
||||||
Nothing worth mentioning
|
|
||||||
|
All and none
|
||||||
### New Features
|
|
||||||
|
### Bug Fixes
|
||||||
All and none
|
|
||||||
|
No bugs fixed, they're all still there.
|
||||||
### Bug Fixes
|
|
||||||
|
## [x.x.x] Year - Month Release Template
|
||||||
No bugs fixed, they're all still there.
|
|
||||||
|
### Breaking Changes
|
||||||
## [x.x.x] Year - Month Release Template
|
|
||||||
|
|
||||||
### Breaking Changes
|
### New Features
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
### New Features
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|||||||
Reference in New Issue
Block a user