Skip to content

Commit 73519be

Browse files
committed
0.1.5
1 parent 62c2c49 commit 73519be

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1723
-1127
lines changed

README-DE.md

Lines changed: 93 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11

2+
3+
24
![](https://i.imgur.com/YedWe7W.png)
35

46
# Minecraft Script Dokumentation
5-
> Update 0.1.4: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
7+
> Update 0.1.5: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
68
79
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.
810

@@ -17,9 +19,11 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
1719
- [mcscript new](#cli-new)
1820
- [mcscript compile](#cli-compile)
1921
- [mcscript watch](#cli-watch)
20-
3) [Syntax](#syntax)
21-
- [file setup](#files)
22+
3) [file system](#files)
23+
- [file setup](#files)
2224
- [Dateien erweitern](#extend)
25+
- [Globale Dateien](#global)
26+
4) [Syntax](#syntax)
2327
- [Command Grouping](#groups)
2428
- [Variablen](#vars)
2529
- [Boolean Variablen](#boolean)
@@ -34,7 +38,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
3438
- [forEach-Loops](#foreach)
3539
- [Modals](#modals)
3640
- [System Modals](#systemModals)
37-
4) [IDEs und Syntax Highlighting](#ide)
41+
5) [IDEs und Syntax Highlighting](#ide)
3842
<a id="install"></a>
3943
## 1) Installation
4044

@@ -92,20 +96,8 @@ Eine Liste aller McScript Extensions kann bekommen werden mit `mcscript add`
9296

9397
!!Dieser Command ist nur für Entwicker gedacht, die ihre Modals in den Compiler einbauen wollen.
9498
Es muss eine Datei angegeben werden und die Modals aus dieser Datei werden dann in eine Konfigurationsdatei geschrieben.
95-
<a id="syntax"></a>
96-
## Minecraft Script Syntax
97-
98-
99-
Der Code wird in Dateien mit der Endung .mcscript geschrieben. Es wird ein Code-Editor(IDE) empfohlen, um die Dateien zu verwalten und den Syntax farbig zu markieren. [Mehr hier](#ide)
100-
101-
Anders als bei mcfunction wird jeder Command mit einem "/" oder "run: " injektiert.
102-
103-
Kommentare werden mit "//" angekündigt, falls Kommentare auch in der neuen Datei auftauchen sollen mit "#"
104-
105-
Leerzeilen und Zeilensprünge werden nicht beachtet.
106-
Falls eine Leerzeile aus Struktur in der mcfunction gewünscht ist, dies mit einem # ohne Kommentar ausdrücken.
107-
Zwei Leerzeilen können mit "##" erreicht werden.
10899
<a id="files"></a>
100+
## 3) File system
109101
### 3.1 File setup
110102
In einem Minecraft Datapack können alle Datein in ein scripts Ordner gepackt werden, um dann in `/functions` den Output zu generieren.
111103
Es werden immer Dateien mit gleichem Namen, wie ihr Root generiert.
@@ -143,8 +135,33 @@ Eine bereits bestehende Datei, vorher mit `#file:`, kann nun auch aus anderen Da
143135
#extend: ./test
144136
/commands kommen hier.
145137
```
138+
<a id="global"></a>
139+
### 3.3 Globale Dateien
140+
[Variablen](#vars), [Konstanten](#consts) und [Modals](#modals) werden für jede Datei seperat gespeichert.
141+
Jetzt kann man eine globale Datei mit der Endung `.gl.mcscript` erstellen. Der Compiler erkennt diese automatisch und verwendet die deklarierten Objekte auch in anderen Dateien.
142+
So kann man die Modals zum Beispiel in eine eigende Datei schreiben.
143+
<a id="syntax"></a>
144+
## Minecraft Script Syntax
145+
146+
147+
Der Code wird in Dateien mit der Endung .mcscript geschrieben. Es wird ein Code-Editor(IDE) empfohlen, um die Dateien zu verwalten und den Syntax farbig zu markieren. [Mehr hier](#ide)
148+
149+
Anders als bei mcfunction wird jeder Command mit einem "/" oder "run: " injektiert.
150+
151+
Kommentare werden mit "//" angekündigt, falls Kommentare auch in der neuen Datei auftauchen sollen mit "#"
152+
Ein Kommentar über mehrere Zeilen muss mit
153+
```
154+
*/
155+
angegeben werden
156+
/*
157+
```
158+
159+
Leerzeilen und Zeilensprünge werden nicht beachtet.
160+
Falls eine Leerzeile aus Struktur in der mcfunction gewünscht ist,drücke dies mit einem # ohne Kommentar aus.
161+
Zwei Leerzeilen können mit "##" erreicht werden.
146162
<a id="groups"></a>
147-
### 3.3 Command Gruppen / Wrapping
163+
164+
### 4.1 Command Gruppen / Wrapping
148165
> ```[subcommand]([argument]){ [wrapped actions] }```
149166
150167
"as, at, positioned,align,dimension,rotated,anchored" können zusammengefasst werden:
@@ -176,7 +193,7 @@ asat(@s){
176193
}
177194
==> /execute as @p at @s positioned ~ ~-1 ~ if entity @s[tag=mytag] run say command
178195
<a id="vars"></a>
179-
### 3.4 Variablen
196+
### 4.2 Variablen
180197
Wie jede Programmiersprache hat auch Minecraft Script Variablen. Sie müssen wiefolgt initialisiert werden:
181198
`var test`
182199
Der Variablen kann ein Wert hinzugewiesen werden:
@@ -226,8 +243,17 @@ test *= neu ==> 50
226243
test /= neu ==> 2
227244
test %= neu ==> 0
228245
```
246+
**Command Response in Variable speichern:**
247+
```
248+
var res = run: command
249+
==> execute store result score res res run command
250+
```
251+
Das Ergebnis des command wird in die Variable res geschrieben.
252+
Beispiel mit /data get:
253+
`var varResult = run: data get entity @s Pos[0]`
254+
229255
<a id="boolean"></a>
230-
### 3.5 Boolean Variablen (Tags)
256+
### 4.3 Boolean Variablen (Tags)
231257
> `bool [name] [selector](optional) = true|false`
232258
233259
So können Wahrheitswerte deklariert werden.
@@ -242,7 +268,7 @@ if(isCool){
242268
}
243269
```
244270
<a id="consts"></a>
245-
### 3.6 Konstanten
271+
### 4.4 Konstanten
246272
Eine andere Art Variable ist die Konstante, so deklariert:
247273
> `const [name] = [value]`
248274
@@ -255,8 +281,19 @@ const eineNum = 5
255281
/say $(einString) ==> /say Hier könnte sehr viel Schrott stehen.
256282
var test = $(eineNum) ==> var test = 5
257283
```
284+
**Replace Konstanten**
285+
Der Wert einer Konstante kann bei der Verwendung noch umgeändert werden. Hierzu ein `.repl()` an die Verwendung anfügen:
286+
> `$(const).repl([suchwert],[replacement])`
287+
288+
Bei unserem Beispiel wollen wir das viel replacen:
289+
```
290+
/say $(einString).repl("viel","sehr viel") ==> /say Hier könnte sehr sehr viel Schrott stehen.
291+
```
292+
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:
293+
`$(const).repl([/regex/],["$&"])`
294+
258295
<a id="if"></a>
259-
### 3.7 If/Else Statements
296+
### 4.5 If/Else Statements
260297

261298
If funktioniert ähnlich wie das Command Wrapping:
262299

@@ -315,7 +352,7 @@ Hier werden beide ausgeführt!! Verbessert:
315352
```
316353

317354
<a id="operators"></a>
318-
### 3.8 Logische Operatoren
355+
### 4.6 Logische Operatoren
319356

320357
In Kombination mit Command Gruppen und If-Else-Statements können zusätzlich logische Operatoren benutzt werden:
321358

@@ -373,7 +410,7 @@ if(test @s > test2 @a){
373410
}
374411
```
375412
<a id="switch"></a>
376-
### 3.9 Switch-Cases
413+
### 4.7 Switch-Cases
377414
```
378415
switch([var_name]){
379416
case <=|<|==|>|>= [other_var]|[number] {
@@ -411,7 +448,7 @@ switch(test){
411448
}
412449
```
413450
<a id="for"></a>
414-
### 3.10 For-Loops
451+
### 4.8 For-Loops
415452
```
416453
for([from],[to],[var_name](optional)){
417454
[actions]
@@ -454,7 +491,7 @@ Das ist bei 2 dimensionalen Loops sinnvoll:
454491
# es wird 10x say mit 1.1 - 5.2 ausgegeben
455492
}
456493
<a id="raycast"></a>
457-
### 3.11 Raycasting
494+
### 4.9 Raycasting
458495
```
459496
raycast([distance](optional), [block to travel through](optional),entity | block [target](optional) ){
460497
[actions on hitted block or entity]
@@ -513,7 +550,7 @@ raycast(10,"air",entity @e[type=armor_stand]) {
513550
Mcscript weiß nun, dass das Ziel eine Entity ist und führt den Command als diese aus, wenn sie getroffen wurde.
514551
Also würde der Armor Stand test sagen.
515552
<a id="while"></a>
516-
### 3.12 while-Loops
553+
### 4.10 while-Loops
517554
Der while-Loop ist so zu definieren:
518555
```
519556
while([cond]){
@@ -549,7 +586,7 @@ while(test < 10){
549586
}
550587
```
551588
<a id="dowhile"></a>
552-
### 3.13 do-while-Loops
589+
### 4.11 do-while-Loops
553590
```
554591
do {
555592
/commands
@@ -558,7 +595,7 @@ do {
558595
Der do-while-Loop funktioniert ähnlich, wie der while-Loop mit dem kleinen Unterschied, dass der Codeblock ausgeführt wird und danach erst die Bedingung geprüft wird.
559596
Der Loop wird also mindestens einmal durchlaufen.
560597
<a id="foreach"></a>
561-
### 3.14 forEach-Loop
598+
### 4.12 forEach-Loop
562599
```
563600
forEach(var [var_name] = [startwert]; [var_name] ==|>|<|<=|>=|!= [other_var]|[number]; [varname]++){
564601
/commands
@@ -583,12 +620,12 @@ forEach(var i = 2; i <= 10; i++){
583620
==> result = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10
584621
```
585622
<a id="modals"></a>
586-
### 3.15 Modals
587-
```
588-
modal [name]([arguments]){
589-
[actions]
590-
}
591-
```
623+
### 4.13 Modals
624+
> ```
625+
> modal [name]([arguments]){
626+
> [actions]
627+
>}
628+
>```
592629
Modals kann man wie functions oder Methoden verstehen, dass heißt man kann sie definieren:
593630
594631
@@ -637,9 +674,29 @@ Auch sind optionale und vordefinierte Argumente verfügbar:
637674
638675
say('test')
639676
# => say test
677+
**Modals überschreiben**
678+
Bereits erstellte modals können innerhalb des Prozesses überschrieben werden:
679+
> ```
680+
> override modal [name]([arguments]){
681+
> [actions]
682+
>}
683+
>```
684+
685+
Dabei werden Argumente und Actions komplett getauscht und für den fortlaufenden Prozess verwendet.
686+
687+
**Argumente ersetzen**
688+
Der Wert eines Arguments kann bei der Verwendung noch umgeändert werden. Hierzu ein `.repl()` an die Verwendung anfügen:
689+
> `$(argument).repl([suchwert],[replacement])`
690+
691+
Bei unserem Beispiel wollen wir ein eingegebenes test replacen:
692+
```
693+
/say $(argument).repl("test","no test") ==> /say no test
694+
```
695+
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:
696+
`$(argument).repl([/regex/],["$&"])`
640697
641698
<a id="systemModals"></a>
642-
### 3.16 System Modals
699+
### 4.14 System Modals
643700
644701
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.
645702

0 commit comments

Comments
 (0)