Okno Edytora dla Recept i Planów

Witam w drugim już w tym tygodniu wpisie poświęconemu IL, a konkretnie receptom kojarzonym z różnych gier do tworzenia innych przedmiotów, oraz planów, kojarzonych głównie z Minecrafta.

Póki co ciągle trzymam się tych dziewięciu zmiennych, ale wkrótce je zastąpie tablicą.

Dodałem specjalnie dla nich sekcje Edytora w oknie Edytora Bazy Itemów, które opisuje ten fragment kodu:

ItemDatabaseWindow.cs


else if (craftToolbarIndex == 1) //BluePrints
{
GUILayout.BeginHorizontal();
GUILayout.BeginVertical("box", GUILayout.Width(250)); //list
GUILayout.BeginHorizontal();
newBluePrint = GUILayout.TextField(newBluePrint.ToString(), GUILayout.Width(150));
EditorUtility.SetDirty(_database);
if (GUILayout.Button("Create BluePrint"))
{
if (int.Parse(newBluePrint) <= _database.ItemList.Count - 1)
{
bool foundDuplicate = false;
for (int i = 0; i < _database.BluePrints.Count; i++)
{
if (_database.BluePrints[i].OutputID == int.Parse(newBluePrint))
{
foundDuplicate = true;
}
}
if (!foundDuplicate)
{
_database.BluePrints.Add(new BluePrint(int.Parse(newBluePrint)));
}
}
}
GUILayout.EndHorizontal();
foreach (BluePrint bp in _database.BluePrints)
{
if (GUILayout.Button(_database.ItemByID(bp.OutputID).Name.ToString()))
{
EditedBluePrint = bp;
}
}

GUILayout.EndVertical();
if (EditedBluePrint!= null)
{
GUILayout.BeginVertical("box", GUILayout.Width(200));
GUILayout.BeginHorizontal();
// GUILayout.Label("BluePrint for: " + _database.ItemByID(EditedRecipe.OutputID).Name.ToString());
GUILayout.EndHorizontal();

GUILayout.BeginVertical();

GUILayout.BeginHorizontal();
EditedBluePrint.x1y1 = GUILayout.TextField(EditedBluePrint.x1y1.ToString(),GUILayout.Width(40));
EditedBluePrint.x1y2 = GUILayout.TextField(EditedBluePrint.x1y2.ToString(), GUILayout.Width(40));
EditedBluePrint.x1y3 = GUILayout.TextField(EditedBluePrint.x1y3.ToString(), GUILayout.Width(40));
GUILayout.EndHorizontal();

GUILayout.BeginHorizontal();
EditedBluePrint.x2y1 = GUILayout.TextField(EditedBluePrint.x2y1.ToString(), GUILayout.Width(40));
EditedBluePrint.x2y2 = GUILayout.TextField(EditedBluePrint.x2y2.ToString(), GUILayout.Width(40));
EditedBluePrint.x2y3 = GUILayout.TextField(EditedBluePrint.x2y3.ToString(), GUILayout.Width(40));
GUILayout.EndHorizontal();

GUILayout.BeginHorizontal();
EditedBluePrint.x3y1 = GUILayout.TextField(EditedBluePrint.x3y1.ToString(), GUILayout.Width(40));
EditedBluePrint.x3y2 = GUILayout.TextField(EditedBluePrint.x3y2.ToString(), GUILayout.Width(40));
EditedBluePrint.x3y3 = GUILayout.TextField(EditedBluePrint.x3y3.ToString(), GUILayout.Width(40));
GUILayout.EndHorizontal();

GUILayout.EndVertical();


GUILayout.EndVertical();

}
GUILayout.EndHorizontal();
}

W wyniku działania tego kodu, w Edytorze w nieaktywnej dotychczas sekcji „Crafting” pojawiają się 2 podSekcje „Recipes”, oraz „BluePrints”. Po wybraniu drugiej opcji ukazuje się lista dodanych przedmiotów, aby dodać kolejne wystarczy wpisać jego ID i zatwierdzić.

Teraz gdy jego pole jest już w liście planów, możemy na niego kliknąć i zmienić jego siatke 3×3. Tak samo jak przy tworzeniu, każda komórka zawiera ID wymaganego przedmiotu.

213d

To by było na tyle, w następnych wpisach postaram się zamienić te zmienne na jedną trwałą tablicę, oraz pokazać wam już recepty. Później przejdę do wizualizacji Craftingu, już w grze.

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s