public void UpdateCraftingOutput() { SerializedItem[] cOutItems = ClientComponent.INSTANCE.GetComponent <PlayerInventory>().craftingOutput; for (uint i = 0; i < cOutItems.Length; i++) { SerializedMetadata.Types.MetadataEntry ent = new SerializedMetadata.Types.MetadataEntry(); ent.Type = SerializedMetadata.Types.MetadataEntry.Types.DataType.Meta; SerializedMetadata itemMeta = new SerializedMetadata(); itemMeta.Entries[0] = new SerializedMetadata.Types.MetadataEntry(); itemMeta.Entries[0].Type = SerializedMetadata.Types.MetadataEntry.Types.DataType.Int32; itemMeta.Entries[0].Int32Value = cOutItems[i].Id; itemMeta.Entries[1] = new SerializedMetadata.Types.MetadataEntry(); itemMeta.Entries[1].Type = SerializedMetadata.Types.MetadataEntry.Types.DataType.Int32; itemMeta.Entries[1].Int32Value = (int)cOutItems[i].Count; itemMeta.Entries[2] = new SerializedMetadata.Types.MetadataEntry(); itemMeta.Entries[2].Type = SerializedMetadata.Types.MetadataEntry.Types.DataType.Meta; itemMeta.Entries[2].MetaValue = cOutItems[i].BinaryMeta; ent.MetaValue = itemMeta; craftingOutputElem.Value.Entries[i] = ent; } }
protected override void ApplyMeta(MapField <uint, SerializedMetadata.Types.MetadataEntry> meta) { if (meta.ContainsKey(0xBA)) { // Debug.Log("GOT ITEM META"); SerializedMetadata.Types.MetadataEntry ent = null; meta.TryGetValue(0xBA, out ent); if (ent == null) { return; } Debug.Log("GOT ITEM META -- not null"); MapField <uint, SerializedMetadata.Types.MetadataEntry> item = ent.MetaValue.Entries; int item_id = item[0].Int32Value; int item_meta = item[1].Int32Value; // int item_count = item[2].Int32Value; MeshRenderer renderer = GetComponentInChildren <MeshRenderer>(); Material mat = new Material(itemMaterial); mat.mainTexture = Inventory.getItemTexture(item_id); renderer.material = mat; } }
protected override void ApplyMeta(MapField <uint, SerializedMetadata.Types.MetadataEntry> meta) { if (meta.ContainsKey(0xBA)) { // Debug.Log("GOT ITEM META"); SerializedMetadata.Types.MetadataEntry ent = null; meta.TryGetValue(0xBA, out ent); if (ent == null) { return; } Debug.Log("GOT ITEM META -- not null"); MapField <uint, SerializedMetadata.Types.MetadataEntry> item = ent.MetaValue.Entries; int item_id = item[0].Int32Value; // int item_count = item[1].Int32Value; Transform cube = transform.Find("Cube"); if (item_id < Block.prototypes.Length && Block.prototypes[item_id] != null) { MeshRenderer renderer = cube.GetComponent <MeshRenderer>(); Material mat = new Material(itemMaterial); mat.mainTexture = Inventory.getItemTexture(item_id); renderer.material = mat; cube.gameObject.SetActive(true); } else { cube.gameObject.SetActive(false); Transform model = transform.Find("Model"); if (model != null) { DestroyImmediate(model.gameObject); GameObject prefab = (GameObject)Resources.Load("Entities/Items/" + item_id); GameObject.Instantiate(prefab, transform, false); } } } }