Bir dizi aynı türden itemlerden birden fazla içerisinde barındıran bir listedir.

Diziler [ ] köşeli parantezler kullanılarak tanımlanırlar. var diziAdı as diziTürü []; şeklinde dizi tanımlaması yapabilirsiniz.

ÖNEMLİ: Dizilere bir şey atamak zorundasınız. Bu boş bir dizi de olabilir.

var floatArray as float []; söz dizimi olarak bir hata vermeyecektir fakat oyunu yüklediğinizde hata alacaksınız ve scriptiniz çalışmayacaktır.

Bunun yerine, Boş bir dizi ataması yapabilirsiniz. var floatArray as float [] = [];

ZenScript
Copy
//"Merhaba" ve "Dünya" kelimelerini içeren bir dizi
val kelimeDizisi = ["Merhaba", "Dünya"] as string[];

//1, 2 ve 3 sayılarını içeren bir dizi
val sayiDizisi = [1,2,3] as int[];

Eğer "Bir dakika, ben bu köşeli parantezleri daha önce bir yerde görmemiş miydim?" diyorsan, haklısın köşeli parantezleri daha önce kullanmıştık. Hatırla, recipes.add(out,[[],[],[]]); fonksiyonunun içerisinde kullanmıştık. Bu fonksiyon içerisine bir adet dizi alıyor ve bu dizinin de içerisinde 3 adet dizi daha var. Bu iç içe dizi tanımlaması çalışma masasını(crafting table) belirtiyor.

You surely have noticed that all arrays here have the as statement appended.
Why you ask? This is because ZenScript sometimes cannot predict what type the items in the array are. This can be the cause of strange conversion error logs!
Better be safe than sorry and cast the Arrays to their correct types!
Also, if you cast to non-primitive types (everything except strings, ints and the same) be sure to import the corresponding package and be sure to do so at the TOP of the script:

ZenScript
Copy
import crafttweaker.item.IItemStack;
val IArray = [<minecraft:gold_ingot>, <minecraft:iron_ingot>] as IItemStack[];

Bir dizi içerisine dizi koyabilirsiniz.

ZenScript
Copy
val stringArray1 = ["Merhaba","Dünya"] as string[];
val stringArray2 = ["Ben","şirin"] as string[];
val stringArray3 = ["ve","yaramaz","bir"] as string[];
val stringArrayAll = [stringArray1,stringArray2,stringArray3,["Kediyim","!"]] as string[][];

Reffering to items in an Array

Link to reffering-to-items-in-an-array

You can refer to an element within an array by using it's place in the list. The first item in an Array is No. 0, the 2nd No.1 and so on.

If you want to refer to an item in a nested Array, you need two or more referers, as each removes one layer of the lists.

ZenScript
Copy
/*
stringArray[0] is "Hello"
stringArray[1] is "World"
stringArray[2] is "I"
stringArray[3] is "am"
*/
val stringArray = ["Hello","World","I","am"] as string[];

//prints "Hello"
print(stringArray[0]);


//Nested Arrays
val stringArray1 = ["Hello","World"] as string[];
val stringArray2 = ["I","am"] as string[];
val stringArray3 = ["a","beautiful"] as string[];
val stringArrayAll = [stringArray1,stringArray2,stringArray3,["Butterfly","!"]] as string[][];

/*
stringArrayAll[0] is ["Hello","World"]
stringArrayAll[1] is ["I","am"]
stringArrayAll[2] is ["a","beautiful"]
stringArrayAll[3] is ["Butterfly","!"]

stringArrayAll[0][0] is "Hello"
stringArrayAll[0][1] is "World"
etc.
*/

//prints "World"
print(stringArrayAll[0][1]);

Döngüler kendilerini tekrarlayan fonksiyonlardır. Bir dizinin tüm elemanları için bir işlem gerçekleştirmek istediğiniz zaman döngüleri kullanabilirsiniz.

The main use of the for-loop is iterating through an array. Iterating means doing an action to all elements of an array.
You can use the break keyword to break the loop prematurely.

ZenScript
Copy
import crafttweaker.item.IItemStack;

val IArray = [<minecraft:dirt>,<minecraft:planks>,<minecraft:diamond>] as IItemStack[];
val JArray = [<minecraft:grass>,<minecraft:log>,<minecraft:gold_ingot>] as IItemStack[];
val KArray = [<minecraft:wooden_axe>,<minecraft:golden_shovel>,<minecraft:emerald>] as IItemStack[];


//for [IntegerName, ] elementName in IArray {code}

for item in IArray {
    //defines the variable "item" with each element of IArray (i.e. <minecraft:dirt>,<minecraft:planks>,<minecraft:diamond>)
    //Just use this variable now!
    recipes.remove(item);
}

for i, item in IArray {
    //defines the variable "i" with each element Number of IArray (i.e. 0,1,2,...)
    //defines the variable "item" with each element of IArray (i.e. <minecraft:dirt>,<minecraft:planks>,<minecraft:diamond>)
    //Just use these variables now!

    //Crafts Item of IArray using item of JArray and KArray (i.e. Dirt with grass and wooden axe, planks with wood and golden shovel, diamond with gold ingot and emerald)
    recipes.addShapeless(item,[JArray[i],KArray[i]]);
}

for i in 0 to 10 {
    //defines the variable "i" with each number from 0 to 9 (i.e. 0,1,2,...,8,9)
    print(i);
}

for i in 10 .. 20 {
    //defines the variable "i" with each number from 10 to 19 (i.e. 10,11,12,...,18,19)
    print(i);
}

for item in loadedMods["minecraft"].items {
    //defines the variable "item" with each item added by the mod with the modID "minecraft" and removes its crafting recipe
    recipes.remove(item);
}

While Döngüsü

Link to while-döngüsü

The while loop executes the given code as long as the given condition evaluates to true.
Alternatively, you can stop it using the break keyword.

ZenScript
Copy
var i = 0; 

//Will print 0 - 9, because in the iteration after that, i < 10 is false since i is 10 then.
while i < 10 {
    print(i); 
    i += 1;
} 

print("After loop: " + i);


//Will print 10 - 6, because in the iteration after that i == 5 and it will break.
while (i > 0) {
    if i == 5
        break;
    print(i);
    i -= 1;
}

print("After loop 2: " + i);


for k in 1 .. 10 {
    if (k == 5)
        break;
    print(k);
}

Bir Diziye Eleman Ekleme

Link to bir-diziye-eleman-ekleme

While it is not recommended to do so, it is possible to add some Objects to Arrays.
You can only add single Objects to an array, you cannot add two arrays.
You use the + operator for array Addition:

ZenScript
Copy
import crafttweaker.item.IItemStack;

val iron = <minecraft:iron_ingot>;
var array as IItemStack[] = [iron, iron, iron];

array += iron;
for item in array {
    print(item.displayName);
}