Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
446a98dc3b | ||
|
|
8cacad84a1 | ||
|
|
f3a38db5ca | ||
|
|
81d9aa7265 | ||
|
|
52f840c270 | ||
|
|
d14a0dc78e |
@@ -1,43 +1,53 @@
|
|||||||
# Spearhead
|
# Spearhead
|
||||||
|
|
||||||
Hello and welcome to Spearhead!
|
|
||||||
|
|
||||||
If you're a developer that wants to contribute, look at the code or understand what we're doing, feel free to read on.
|
## Contributing.
|
||||||
|
|
||||||
If you're a mission maker that wants to see the documentation and build you mission with this framework. <br>
|
I'm always happy to see contributions! <br/>
|
||||||
It's best to go to our fully fledged documentation website:
|
Especially if you've found an issue, annoyance or feature that you know how to solve, fix or create! <br/>
|
||||||
- Stable/Main: https://spearhead.rocks
|
|
||||||
- Beta/Develop: https://beta.spearhead.rocks
|
|
||||||
|
|
||||||
## Project Structure
|
### Keep it small.
|
||||||
|
|
||||||
The Spearhead project is structured in a lot of separate files. <br>
|
Keeping your contributions small and to the point helps both me and yourself. <br/>
|
||||||
While Lua isn't specifically created for it, most of it has been written with the standards of OOP in mind. <br>
|
It'll help the PR review and the speed of improvements. <br/>
|
||||||
Classes, Objects and helper methods.
|
If you have a big feature in mind? Go for it! <br/>
|
||||||
|
Does it require an entire refactor of parts or all of the program? Maybe make sure to do step 0 first.
|
||||||
|
|
||||||
You're find in the `/src` folder all the files. <br>
|
### Steps (for first timers)
|
||||||
They are separated in a somewhat logical order, but some things might feel out of place. <br>
|
0. Reach out (Optional)
|
||||||
|
|
||||||
### Bundling, Intellisense, Linting
|
If you want to let me know you want to do something to contribute, please do! <br/>
|
||||||
|
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.
|
|
||||||
|
|
||||||
The `VSCode` extensions comes with Intellisense as well, in the form of a full file of DCS lua type annotations. <br>
|
1. Fork the repository
|
||||||
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/
|
|
||||||
|
|
||||||
When a pull-request to the `develop` or `main` branches is created, before it can be merged it requires to pass the linter checks.
|
By forking you can create your own working set of code. <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>
|
Whether you keep that fork public or private is up to you! <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.
|
|
||||||
|
|
||||||
## Contributing
|
Keep in mind, forking is alright, but it's best with the intent to contribute back. <br/>
|
||||||
|
After all, instead of having 5 slightly different versions and products, it might be nicer to have 1 much better version. <br/>
|
||||||
|
|
||||||
### Setting up the project
|
2. Create a Draft PR as soon as possible!
|
||||||
|
|
||||||
If you've kept on reading I assume you either want to brwose
|
As soon as you've found some times to create an initial version, please create a draft PR. <br/>
|
||||||
|
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.
|
||||||
|
|||||||
+90
-87
@@ -1,87 +1,90 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Addresses #41
|
- Issue: #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.
|
||||||
PR #40
|
#40
|
||||||
- Closes #35
|
|
||||||
Creating Lane option for stages.
|
- Issue: #35
|
||||||
Additionally to the primary stage lane, stages can now be created in different lanes.
|
Creating Lane option for stages.
|
||||||
These lanes can be used to create different stage progression flows and create different "side-stories".
|
Additionally to the primary stage lane, stages can now be created in different lanes.
|
||||||
PR #40
|
These lanes can be used to create different stage progression flows and create different "side-stories".
|
||||||
- Closes #37
|
#40
|
||||||
Now enabled the mission editor to add a custom briefing to the "Buildable" missions.
|
|
||||||
PR #44
|
- Issue: #37
|
||||||
- Closes #42
|
Now enabled the mission editor to add a custom briefing to the "Buildable" missions.
|
||||||
DEEPSTRIKE now added as a possible feature.
|
#44
|
||||||
This enables to have missions active in "Pre-Activated" Stages.
|
|
||||||
PR #48
|
- Issue: #42
|
||||||
|
DEEPSTRIKE now added as a possible feature.
|
||||||
### Bug Fixes
|
This enables to have missions active in "Pre-Activated" Stages.
|
||||||
|
#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
|
|
||||||
Possibility to have Stage Overview briefings (which include current missions sorted by distance) to be shown on spawning of a player.
|
### New Features
|
||||||
PR #31
|
|
||||||
|
- Issue #26
|
||||||
### Bug Fixes
|
Possibility to have Stage Overview briefings (which include current missions sorted by distance) to be shown on spawning of a player.
|
||||||
|
PR #31
|
||||||
- Issue #11
|
|
||||||
Supply crate spawning now checks for free space and will not spawn if the area is too crowded.
|
### Bug Fixes
|
||||||
Additionally different units will spawn in different areas depending on loading side.
|
|
||||||
PR #17
|
- Issue #11
|
||||||
- Fixed command wiring for supply hubs for better and more accurate detection of units spawning and entering/exiting zone.
|
Supply crate spawning now checks for free space and will not spawn if the area is too crowded.
|
||||||
PR #15
|
Additionally different units will spawn in different areas depending on loading side.
|
||||||
- Fixed custom drawings not being drawn correctly.
|
PR #17
|
||||||
PR #18
|
- Fixed command wiring for supply hubs for better and more accurate detection of units spawning and entering/exiting zone.
|
||||||
- Fixed CAP Callbacks not working since the change to a transpiled script. Now a global callback circumvents this issue.
|
PR #15
|
||||||
PR #18
|
- Fixed custom drawings not being drawn correctly.
|
||||||
- Fixed #9
|
PR #18
|
||||||
Changed order of checking mission briefings
|
- Fixed CAP Callbacks not working since the change to a transpiled script. Now a global callback circumvents this issue.
|
||||||
PR #19
|
PR #18
|
||||||
- Fixed Configuration defaulting to true for all booleans in StageConfig
|
- Fixed #9
|
||||||
PR #28
|
Changed order of checking mission briefings
|
||||||
- Fixed Pre-Activated stages not always drawing or pre-activating correctly.
|
PR #19
|
||||||
PR #28
|
- Fixed Configuration defaulting to true for all booleans in StageConfig
|
||||||
- Addressed #24
|
PR #28
|
||||||
CAP max commit range is now configurable in the config.lua file.
|
- Fixed Pre-Activated stages not always drawing or pre-activating correctly.
|
||||||
Issue remains open in order to apply further fine grained tuning.
|
PR #28
|
||||||
PR #29
|
- Addressed #24
|
||||||
|
CAP max commit range is now configurable in the config.lua file.
|
||||||
## [0.12.0] 2026-06
|
Issue remains open in order to apply further fine grained tuning.
|
||||||
|
PR #29
|
||||||
Migration to Gitea. <br>
|
|
||||||
First version of the Gitea repository. <br>
|
## [0.12.0] 2026-06
|
||||||
Everything is new, but also old.
|
|
||||||
|
Migration to Gitea. <br>
|
||||||
### Breaking Changes
|
First version of the Gitea repository. <br>
|
||||||
|
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
|
||||||
|
|
||||||
### New Features
|
### Breaking Changes
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|||||||
Reference in New Issue
Block a user