コード例 #1
0
 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;
     }
 }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
    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);
                }
            }
        }
    }