Skip to content

Commit 91dea9c

Browse files
committed
v0.2 added Array, Map, Javascript Modal, fixed Extend
1 parent 86ba2e6 commit 91dea9c

40 files changed

+1671
-2405
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
node_modules
22
package-lock.json
33
lib/modals/cam.mcscript
4+
examples - Kopie
45
examples
6+
mcscript.tmlanguage.json
57
Nodepad++ Highlighter.xml
68
_changelog.md
79
Core Modals.md

.vscode/launch.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
8+
{
9+
"type": "node",
10+
"request": "launch",
11+
"name": "Launch Program",
12+
"program": "${workspaceFolder}\\lib\\index.js"
13+
}
14+
]
15+
}

.vscode/tasks.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=733558
3+
// for the documentation about the tasks.json format
4+
"version": "2.0.0",
5+
"tasks": [
6+
{
7+
"type": "npm",
8+
"script": "install",
9+
"problemMatcher": []
10+
},
11+
{
12+
"label": "build mcscript",
13+
"type": "shell",
14+
"command": "mcscript compile",
15+
"group": {
16+
"kind": "build",
17+
"isDefault": true
18+
}
19+
}
20+
]
21+
}

README-DE.md

Lines changed: 146 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33

44

5+
56
![](https://i.imgur.com/YedWe7W.png)
67

78
# Minecraft Script Dokumentation
8-
> Update 0.2: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
9+
> Update 0.2.1: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
910
1011
Minecraft Script ist eine Programmiersprache für Entwickler der mcfunctions, sowie für die Minecraft Map und Package Erschaffer. Die .mcscript Dateien werden dabei zu mcfunction compiled und generiert. Dies bietet dem Entwickler erweiterte Möglichkeiten, wie zum Beispiel Modals, Loops, Variablen, Konstanten und Command-Wrapping.
1112

@@ -39,6 +40,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
3940
- [do-while-Loops](#dowhile)
4041
- [forEach-Loops](#foreach)
4142
- [Modals](#modals)
43+
- [JavaScript Modals](#modaljs)
4244
- [System Modals](#systemModals)
4345
- [Fehler und Debugging](#debugging)
4446
5) [IDEs und Syntax Highlighting](#ide)
@@ -321,7 +323,43 @@ Bei unserem Beispiel wollen wir das viel replacen:
321323
```
322324
Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp) eingefügt werden und auch auf diesen im Replacement zugegriffen werden:
323325
`$(const).repl([/regex/],["$&"])`
326+
<a id="maps"></a>
327+
#### Maps
328+
Maps sind schlüssel-wert Paare ähnlich wie bei einem Wörterbuch. Wir definieren eine Map mit dem Map-Operator:
329+
```js
330+
const testMap = Map{
324331

332+
}
333+
```
334+
In den Klammern kannst du so viele Paare angeben, wie du magst:
335+
```js
336+
const testMap = Map{
337+
"key1":"value",
338+
"key2":"value2"
339+
}
340+
```
341+
Wir können dann auf die Werte so zugreifen:
342+
```js
343+
/say $(testMap).key1
344+
345+
/say value
346+
```
347+
<a id="arrays"></a>
348+
#### Arrays
349+
Arrays sind ziemlich ähnlich zu Maps, nur dass wir nicht Paare sondern eine einfache Liste an Werten haben.
350+
```js
351+
const testArr = Array{
352+
"value", // index 0
353+
"value2" // index 1
354+
}
355+
```
356+
Die Werte können mit dem Index des Elements abgerufen werden:
357+
```js
358+
/say $(testArr).0
359+
/say value
360+
/say $(testArr).1
361+
/say value2
362+
```
325363
<a id="if"></a>
326364
### 4.6 If/Else Statements
327365

@@ -704,6 +742,23 @@ Auch sind optionale und vordefinierte Argumente verfügbar:
704742
705743
say('test')
706744
# => say test
745+
746+
**Maps und Arrays benutzen**
747+
Du kannst auch die [Map](#maps) und[Array](#arrays) typen der Konstanten in Modals benutzen:
748+
```js
749+
modal defaultMap(args = Map{"key":"value"}){
750+
/say $(args).key
751+
}
752+
defaultMap()
753+
defaultMap(Map{
754+
"key":"value2"
755+
})
756+
757+
⇒ /say value
758+
⇒ /say value2
759+
```
760+
761+
707762
**Modals überschreiben**
708763
Bereits erstellte modals können innerhalb des Prozesses überschrieben werden:
709764
> ```
@@ -724,15 +779,94 @@ Bei unserem Beispiel wollen wir ein eingegebenes test replacen:
724779
```
725780
Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp) eingefügt werden und auch auf diesen im Replacement mit `$&` zugegriffen werden:
726781
`$(argument).repl([/regex/],["$&"])`
782+
<a id="modaljs"></a>
783+
### 4.15 JavaScript Modals
784+
JavaScript Modals sind modals, die in Javascript geschrieben sind. Du kannst sie, wie andere modals auch, so definieren:
785+
786+
> ```
787+
> modaljs [name]([argumente]){
788+
> [aktionen]
789+
> return [Text]
790+
> }
791+
> ```
792+
>
793+
Das JavaScript Modal muss mit einem return statement enden. Das, was zurückgegeben wurde, wird in der `.mcfunction` Datei als einfacher Text erscheinen.
794+
795+
modaljs newModal(){
796+
return "say hi";
797+
}
798+
799+
newModal()
800+
801+
# => say hi
802+
Für Absätze empfehle ich etwas ähnliches zu dem:
803+
804+
modaljs newModal(){
805+
var ret = "";
806+
807+
ret += "say hi\n";
808+
ret += "say ho\n";
809+
810+
return ret;
811+
}
812+
813+
newModal()
727814
815+
# => say hi
816+
# => say ho
817+
Achtung: Du musst Absätze manuell mit `\n` hinzufügen.
818+
819+
Ein JavaScript modal ist immer deklariert durch das Keyword gefolgt vom Name und den Argumenten in den Klammern.
820+
821+
Die Argumente sind aufrufbar in dem Code.
822+
823+
modaljs newModal(argument){
824+
return "say " + argument;
825+
}
826+
827+
newModal('test')
828+
829+
# => say test
830+
831+
Du kannst auch mehrere Argumente verwenden:
832+
833+
modaljs newModal(text,monster){
834+
var ret = "";
835+
836+
ret += "say " + text + "\n";
837+
ret += "summon " + monster + "\n";
838+
839+
return ret;
840+
}
841+
842+
newModal("Gehirne!!!","minecraft:zombie")
843+
844+
# => say Gehirne!!!
845+
# => summon minecraft:zombie
846+
847+
Es gibt ebenfalls optionale Argumente:
848+
849+
modaljs say(argument = "hallo"){
850+
return "say " + argument ;
851+
}
852+
853+
say()
854+
# => say hallo
855+
856+
say('test')
857+
# => say test
858+
859+
**Tipps und Tricks**
860+
861+
Benutze `console.log`, um einige Informationen in der Konsole, während des Kompelieren, auszugeben, ohne den Wert zu verändern.
728862
<a id="systemModals"></a>
729-
### 4.15 System Modals
863+
### 4.16 System Modals
730864
731865
Es gibt schon einige vordefinierte Modals, die hilfreich sein könnten. Bitte schaue dir dafür die spezifischen Dokumentationen [hier](https://github.com/Stevertus/mcscript/blob/master/Core%20Modals.md) an.
732866
733867
Du hast Ideen, welche Modals unbedingt als Standart-Modal aufgegriffen werden müssen? Sende mir einfach die [Konfigurationsdatei](#24_Dev_mcscript_modals_54) zur Überprüfung.
734868
<a id="debugging"></a>
735-
### 4.16 Error handling und Debugging
869+
### 4.17 Error handling und Debugging
736870
Minecraft Script zeigt mit der Version 0.2 nur noch begrenzt Fehler an mit der Zeilen- und Dateiangabe.
737871
Benutze beim generieren bitte die Flag `-fullErr`, um vollständige alte Fehler wiederzuerlangen, falls du sie wünscht.
738872
@@ -750,11 +884,17 @@ Dein Programm bricht an dieser Stelle ab und sendet erneut eine Nachricht.
750884
Dein Programm bricht an dieser Stelle ab und gibt einen kritischen Fehler mit Systeminformationen und relevanten Codestellen aus.
751885
752886
<a id="ide"></a>
753-
## IDEs und Syntax Highlighting
754887
888+
## IDEs and Syntax Highlighting
889+
890+
* Visual Studio Code:
891+
[Stevertus.mcscript](https://marketplace.visualstudio.com/items?itemName=Stevertus.mcscript)
892+
893+
* GitHubs Atom Editor:
894+
[mcscript](https://atom.io/packages/mcscript) (credit: [Trojaner](https://github.com/TrojanerHD))
755895
756-
* GitHubs Atom Editor: link here (credit: [MrYurihi](https://atom.io/users/MrYurihi))
757-
* Notepad++: [see code](https://github.com/Stevertus/mcscript/blob/master/Nodepad%2B%2B%20Highlighter.xml) | [download](http://download1496.mediafire.com/x2k7loq5imbg/4534q4tual7zccm/Nodepad+++Highlighter.xml)
896+
* Notepad++:
897+
[code](https://github.com/Stevertus/mcscript/blob/master/Nodepad%2B%2B%20Highlighter.xml) | [download](http://download1496.mediafire.com/x2k7loq5imbg/4534q4tual7zccm/Nodepad+++Highlighter.xml)
758898
759899
Jetzt bleibt nichts mehr übrig als: **Happy Developing**
760900
--------------------------------------------------------

0 commit comments

Comments
 (0)