Update About.xml
This commit is contained in:
@@ -4,70 +4,75 @@
|
|||||||
<Author>JoeDiertay</Author>
|
<Author>JoeDiertay</Author>
|
||||||
<Version>0.1.1</Version>
|
<Version>0.1.1</Version>
|
||||||
<Description>
|
<Description>
|
||||||
[h1]Slang: High-Level Programming for Stationeers[/h1]
|
[h1]Slang: High-Level Programming for Stationeers[/h1]
|
||||||
|
|
||||||
Stop writing assembly. Start writing code.
|
Stop writing assembly. Start writing code.
|
||||||
|
|
||||||
Slang (Stationeers Language) brings modern programming to Stationeers. It allows you to write scripts using a familiar C-style syntax (variables, functions, if/else, loops) directly in the in-game editor. When you hit confirm, Slang compiles your code into optimized IC10 MIPS assembly instantly.
|
Slang (Stationeers Language) brings modern programming to Stationeers. It allows you to write scripts using a familiar C-style syntax (variables, functions, if/else, loops) directly in the in-game editor. When you hit confirm, Slang compiles your code into optimized IC10 MIPS assembly instantly.
|
||||||
|
|
||||||
[b]NOTE: This project is in BETA. Expect updates and changes![/b]
|
[b]NOTE: This project is in BETA. Expect updates and changes![/b]
|
||||||
|
|
||||||
[h2]Features[/h2]
|
[h2]Features[/h2]
|
||||||
[list]
|
[list]
|
||||||
[*] [b]In-Game Compilation:[/b] No external tools needed. Write Slang directly in the IC editor.
|
[*] [b]In-Game Compilation:[/b] No external tools needed. Write Slang directly in the IC editor.
|
||||||
[*] [b]No More Register Juggling:[/b] Define variables with let (e.g., let temp = 300). The compiler manages r0-r15 for you.
|
[*] [b]No More Register Juggling:[/b] Define variables with let (e.g., let temp = 300). The compiler manages r0-r15 for you.
|
||||||
[*] [b]Control Flow:[/b] Write readable logic with if, else, while, loop, break, and continue.
|
[*] [b]Control Flow:[/b] Write readable logic with if, else, while, loop, break, and continue.
|
||||||
[*] [b]Functions:[/b] Create reusable code blocks with arguments.
|
[*] [b]Functions:[/b] Create reusable code blocks with arguments.
|
||||||
[*] [b]Smart Editor:[/b] Get real-time syntax highlighting and error checking (red text) as you type.
|
[*] [b]Smart Editor:[/b] Get real-time syntax highlighting and error checking (red text) as you type.
|
||||||
[*] [b]Persistent Source:[/b] Your high-level Slang code is saved to the chip, so it's there when you come back.
|
[*] [b]Persistent Source:[/b] Your high-level Slang code is saved to the chip, so it's there when you come back.
|
||||||
[*] [b]Optimizations:[/b] Features like Constant Folding calculate math at compile time to save instructions.
|
[*] [b]Optimizations:[/b] Features like Constant Folding calculate math at compile time to save instructions.
|
||||||
[*] [b]Device Aliasing:[/b] Simple mapping: device sensor = "d0".
|
[*] [b]Device Aliasing:[/b] Simple mapping: device sensor = "d0".
|
||||||
[*] [b]Temperature Literals:[/b] Don't worry about converting Celsius to Kelvin anymore. Define your temperatures as whatever you want and append the proper suffix at the end (ex. 20c, 68f, 293.15k)
|
[*] [b]Temperature Literals:[/b] Don't worry about converting Celsius to Kelvin anymore. Define your temperatures as whatever you want and append the proper suffix at the end (ex. 20c, 68f, 293.15k)
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
[h2]Installation[/h2]
|
[h2]Installation[/h2]
|
||||||
This is a StationeersLaunchPad Plugin Mod.
|
This is a StationeersLaunchPad Plugin Mod.
|
||||||
1. Install BepInEx (required).
|
1. Install BepInEx (required).
|
||||||
2. Install StationeersLaunchPad.
|
2. Install StationeersLaunchPad.
|
||||||
3. Subscribe to Slang.
|
3. Subscribe to Slang.
|
||||||
|
|
||||||
[h2]Usage[/h2]
|
[h2]Usage[/h2]
|
||||||
1. Open any IC10 housing or editor in-game.
|
1. Open any IC10 housing or editor in-game.
|
||||||
2. Write your Slang code.
|
2. Write your Slang code.
|
||||||
3. Press [b]Confirm[/b]. The mod compiles your code to IC10 and loads it onto the chip.
|
3. Press [b]Confirm[/b]. The mod compiles your code to IC10 and loads it onto the chip.
|
||||||
|
|
||||||
[h2]Example Code[/h2]
|
[h2]Example Code[/h2]
|
||||||
[code]
|
[code]
|
||||||
device airCon = "d0";
|
device airCon = "d0";
|
||||||
device gasSensor = "d1";
|
device gasSensor = "d1";
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
yield();
|
yield();
|
||||||
// yes, ideally you would use a latch here, but this is just a simple example :)
|
// yes, ideally you would use a latch here, but this is just a simple example :)
|
||||||
airCon.On = gasSensor.Temperature >= 28c;
|
airCon.On = gasSensor.Temperature >= 28c;
|
||||||
}
|
}
|
||||||
[/code]
|
[/code]
|
||||||
|
|
||||||
[h2]Known Issues (Beta)[/h2]
|
[h2]Known Issues (Beta)[/h2]
|
||||||
[list]
|
[list]
|
||||||
[*] [b]Code Size:[/b] Compiled output is currently more verbose than hand-optimized assembly. Optimization passes are planned.
|
[*] [b]Code Size:[/b] Compiled output is currently more verbose than hand-optimized assembly. Optimization passes are planned.
|
||||||
[*] [b]Stack Access:[/b] Direct stack memory access is disabled to prevent conflicts with the compiler's internal memory management.
|
[*] [b]Stack Access:[/b] Direct stack memory access is disabled to prevent conflicts with the compiler's internal memory management.
|
||||||
[*] [b]Documentation:[/b] In-game tooltips for syscalls (like load, set) are WIP. Check the "Slang" entry in the Stationpedia (F1) for help.
|
[*] [b]Documentation:[/b] In-game tooltips for syscalls (like load, set) are WIP. Check the "Slang" entry in the Stationpedia (F1) for help.
|
||||||
[*] [b]Debugging:[/b] Runtime errors currently point to the compiled IC10 line number, not your Slang source line. Source mapping is coming soon.
|
[*] [b]Debugging:[/b] Runtime errors currently point to the compiled IC10 line number, not your Slang source line. Source mapping is coming soon.
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
[h2]Planned Features[/h2]
|
[h2]Planned Features[/h2]
|
||||||
[list]
|
[list]
|
||||||
[*] Side-by-side view: Slang vs. Compiled IC10.
|
[*] Side-by-side view: Slang vs. Compiled IC10.
|
||||||
[*] Compiler optimizations (dead code elimination, smarter register allocation).
|
[*] Compiler optimizations (dead code elimination, smarter register allocation).
|
||||||
[*] Enhanced LSP features (Autocomplete, Go to Definition).
|
[*] Enhanced LSP features (Autocomplete, Go to Definition).
|
||||||
[*] Full feature parity with all IC10 instructions.
|
[*] Full feature parity with all IC10 instructions.
|
||||||
[*] Tutorials and beginner script examples.
|
[*] Tutorials and beginner script examples.
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
[h2]FAQ[/h2]
|
[h2]FAQ[/h2]
|
||||||
[b]Q: What is the DLL extracted to my temp folder?[/b]
|
[b]Q: What is the DLL extracted to my temp folder?[/b]
|
||||||
A: The Slang compiler is built in Rust for performance and reliability. It is compiled as a native library and bundled with the mod. It must be extracted temporarily to function within the game's C# environment.
|
A: The Slang compiler is built in Rust for performance and reliability. It is compiled as a native library and bundled with the mod. It must be extracted temporarily to function within the game's C# environment.
|
||||||
|
|
||||||
|
[h2]Useful Links[/h2]
|
||||||
|
[url=https://github.com/dbidwell94/stationeers_lang]Source Code on GitHub[/url]
|
||||||
|
[url=https://discord.gg/stationeers]Stationeers Official Discord[/url]
|
||||||
|
[url=https://discord.gg/M4sCfYMacs]Stationeers Modding Discord[/url]
|
||||||
</Description>
|
</Description>
|
||||||
<ChangeLog xsi:nil="true" />
|
<ChangeLog xsi:nil="true" />
|
||||||
<WorkshopHandle>3619985558</WorkshopHandle>
|
<WorkshopHandle>3619985558</WorkshopHandle>
|
||||||
|
|||||||
Reference in New Issue
Block a user