Exemplo n.º 1
0
    /// Input from a float source, value's coming in from 0-100 and should be tamped down to 0-1.
    public static void SetValues(this RTable <double> instance, Godot.Collections.Dictionary input)
    {
        // GD.Print("attempting to assign RTable.......");
        // GD.Print(input["values"].GetType());

        //Structure of dict:   {values=[PoolRealArray tbl], floor=0, ceiling=100, use_log=false...}
        instance.floor   = Convert.ToDouble(input["floor"]);
        instance.ceiling = Convert.ToDouble(input["ceiling"]);
        instance.use_log = Convert.ToBoolean(input["use_log"]);

        //Convert values to our maximum.
        var vals = (System.Single[])input["values"];

        for (int i = 0; i < vals.Length; i++)
        {
            instance.values[i] = (double)vals[i] / 100.0;
        }

        instance.RecalcValues();
    }
Exemplo n.º 2
0
    //Input from a serialized source, value's coming in from 0-1.
    public static void SetValues(this RTable <double> instance, GdsFMJson.JSONObject input, bool tableOnly = false)
    {
        // GD.Print("attempting to assign RTable.......");

        //Structure of dict:   {values=[PoolRealArray tbl], floor=0, ceiling=100, use_log=false...}

        if (!tableOnly)
        {
            instance.floor   = input.GetItem("floor", (float)instance.floor);
            instance.ceiling = input.GetItem("ceiling", (float)instance.ceiling);
            instance.use_log = input.GetItem("use_log", instance.use_log);
        }

        //Convert values to our maximum.
        var vals = (GdsFMJson.JSONArray)input.GetItem("values");

        for (int i = 0; i < vals.Length; i++)
        {
            instance.values[i] = vals[i].ToFloat();
        }

        instance.RecalcValues();
    }