예제 #1
0
    // Token: 0x060059FE RID: 23038 RVA: 0x001F45F8 File Offset: 0x001F29F8
    public void Set <T>(int index, T value)
    {
        VRC_DataStorage.VrcDataElement vrcDataElement = this.dataStorage.data[index];
        this.VerifyType <T>(vrcDataElement);
        if (this.dataHash != null && this.dataHash.Length > index)
        {
            this.dataHash[index] = null;
        }
        vrcDataElement.added = (vrcDataElement.type == VRC_DataStorage.VrcDataType.None);
        if (typeof(T) == typeof(bool))
        {
            vrcDataElement.valueBool = (bool)((object)value);
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                this._rainMemory.SetItem <T>(vrcDataElement.name, value);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                if ((bool)((object)value))
                {
                    Debug.Log("True");
                }
                this._animator.SetBool(vrcDataElement.name, (bool)((object)value));
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
        }
        else if (typeof(T) == typeof(int))
        {
            vrcDataElement.valueInt = (int)((object)value);
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                this._rainMemory.SetItem <T>(vrcDataElement.name, value);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                this._animator.SetInteger(vrcDataElement.name, (int)((object)value));
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
        }
        else if (typeof(T) == typeof(float))
        {
            vrcDataElement.valueFloat = (float)((object)value);
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                this._rainMemory.SetItem <T>(vrcDataElement.name, value);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                this._animator.SetFloat(vrcDataElement.name, (float)((object)value));
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
        }
        else if (typeof(T) == typeof(string))
        {
            vrcDataElement.valueString = (string)((object)value);
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                this._rainMemory.SetItem <T>(vrcDataElement.name, value);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                Debug.LogError("Cant set animator string");
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
        }
        else if (typeof(T) == typeof(Array) || typeof(T) == typeof(byte[]))
        {
            vrcDataElement.valueSerializedBytes = (byte[])((object)value);
            VRC_DataStorage.VrcDataMirror mirror = vrcDataElement.mirror;
            if (mirror != VRC_DataStorage.VrcDataMirror.None)
            {
                if (mirror != VRC_DataStorage.VrcDataMirror.SerializeComponent)
                {
                    Debug.LogError("Add Data Mirroring.");
                }
                else
                {
                    vrcDataElement.serializeComponent.SetBytes(vrcDataElement.valueSerializedBytes);
                }
            }
        }
        else
        {
            vrcDataElement.Serialize <T>(value);
        }
    }
예제 #2
0
    // Token: 0x060059FC RID: 23036 RVA: 0x001F42CC File Offset: 0x001F26CC
    public T Get <T>(int index)
    {
        VRC_DataStorage.VrcDataElement vrcDataElement = this.dataStorage.data[index];
        this.VerifyType <T>(vrcDataElement);
        if (typeof(T) == typeof(bool))
        {
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                vrcDataElement.valueBool = (bool)this._rainMemory.GetItem(vrcDataElement.name);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                vrcDataElement.valueBool = this._animator.GetBool(vrcDataElement.name);
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
            return((T)((object)vrcDataElement.valueBool));
        }
        if (typeof(T) == typeof(int))
        {
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                vrcDataElement.valueInt = (int)this._rainMemory.GetItem(vrcDataElement.name);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                vrcDataElement.valueInt = this._animator.GetInteger(vrcDataElement.name);
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
            return((T)((object)vrcDataElement.valueInt));
        }
        if (typeof(T) == typeof(float))
        {
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                vrcDataElement.valueFloat = (float)this._rainMemory.GetItem(vrcDataElement.name);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                vrcDataElement.valueFloat = this._animator.GetFloat(vrcDataElement.name);
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
            return((T)((object)vrcDataElement.valueFloat));
        }
        if (typeof(T) == typeof(string))
        {
            switch (vrcDataElement.mirror)
            {
            case VRC_DataStorage.VrcDataMirror.None:
                break;

            case VRC_DataStorage.VrcDataMirror.Rain:
                vrcDataElement.valueString = (string)this._rainMemory.GetItem(vrcDataElement.name);
                break;

            case VRC_DataStorage.VrcDataMirror.Animator:
                Debug.LogError("Cant get animator string");
                break;

            default:
                Debug.LogError("Add Data Mirroring.");
                break;
            }
            return((T)((object)vrcDataElement.valueString));
        }
        if (typeof(T) == typeof(Array) || typeof(T) == typeof(byte[]))
        {
            VRC_DataStorage.VrcDataMirror mirror = vrcDataElement.mirror;
            if (mirror != VRC_DataStorage.VrcDataMirror.None)
            {
                if (mirror != VRC_DataStorage.VrcDataMirror.SerializeComponent)
                {
                    Debug.LogError("Add Data Mirroring.");
                }
                else
                {
                    byte[] bytes = vrcDataElement.serializeComponent.GetBytes();
                    vrcDataElement.valueSerializedBytes = bytes;
                }
            }
            return((T)((object)vrcDataElement.valueSerializedBytes));
        }
        T result;

        vrcDataElement.Deserialize <T>(out result);
        return(result);
    }