/// <summary> /// Deserializes the recipe /// </summary> /// <param name="reader"></param> /// <param name="resolver"></param> public void FromBytes(BinaryReader reader, IWorldAccessor resolver) { Width = reader.ReadInt32(); Height = reader.ReadInt32(); Output = new CraftingRecipeIngredient(); Output.FromBytes(reader, resolver); Shapeless = reader.ReadBoolean(); resolvedIngredients = new CraftingRecipeIngredient[Width * Height]; for (int i = 0; i < resolvedIngredients.Length; i++) { bool isnull = reader.ReadBoolean(); if (isnull) { continue; } resolvedIngredients[i] = new CraftingRecipeIngredient(); resolvedIngredients[i].FromBytes(reader, resolver); } Name = new AssetLocation(reader.ReadString()); if (!reader.ReadBoolean()) { string json = reader.ReadString(); Attributes = new JsonObject(JToken.Parse(json)); } if (reader.ReadBoolean()) { RequiresTrait = reader.ReadString(); } }
/// <summary> /// Deserializes the alloy /// </summary> /// <param name="reader"></param> /// <param name="resolver"></param> public void FromBytes(BinaryReader reader, IWorldAccessor resolver) { Ingredient = new CraftingRecipeIngredient(); RecipeId = reader.ReadInt32(); Ingredient.FromBytes(reader, resolver); int len = reader.ReadInt32(); Pattern = new string[len][]; for (int i = 0; i < Pattern.Length; i++) { Pattern[i] = reader.ReadStringArray(); } Name = new AssetLocation(reader.ReadString()); Output = new JsonItemStack(); Output.FromBytes(reader, resolver.ClassRegistry); Output.Resolve(resolver, "[FromBytes]"); GenVoxels(); }