// -----------------------------------------------------------------------------------
    // UCE_setSimpleTimegate
    // -----------------------------------------------------------------------------------
    private void UCE_setSimpleTimegate(UCE_Area_Timegate targetTimegate)
    {
        // ---------- Update only if either Visits or Hours is set
        if (targetTimegate.maxVisits != 0 || targetTimegate.hoursBetweenVisits != 0)
        {
            bool done = false;
            int  idx  = UCE_GetTimegateIndexByName(targetTimegate.name);

            // -- Update existing Timegate entry
            if (idx > -1 && UCE_timegates[idx].valid && UCE_timegates[idx].name == targetTimegate.name)
            {
                UCE_Timegate myTimegate = new UCE_Timegate();
                myTimegate.name    = targetTimegate.name;
                myTimegate.count   = UCE_timegates[idx].count + 1;
                myTimegate.hours   = DateTime.UtcNow.ToString("s");
                myTimegate.valid   = true;
                UCE_timegates[idx] = myTimegate;
                done = true;
            }
            // -- Add new Timegate if it does not exist
            if (!done)
            {
                UCE_Timegate myTimegate = new UCE_Timegate();
                myTimegate.name  = targetTimegate.name;
                myTimegate.count = 1;
                myTimegate.hours = DateTime.UtcNow.ToString("s");
                myTimegate.valid = true;
                UCE_timegates.Add(myTimegate);
            }
        }
    }
    private void CharacterLoad_UCE_SimpleTimegate(Player player)
    {
        player.UCE_timegates.Clear();

#if _MYSQL && _SERVER
        var table = ExecuteReaderMySql("SELECT timegateName, timegateCount, timegateHours FROM character_timegates WHERE `character`=@name", new MySqlParameter("@name", player.name));
        foreach (var row in table)
        {
            UCE_Timegate timegate = new UCE_Timegate();
            timegate.name  = (string)row[0];
            timegate.count = Convert.ToInt32((int)row[1]);
            timegate.hours = (string)row[2];
            timegate.valid = true;
            player.UCE_timegates.Add(timegate);
        }
#elif _SQLITE && _SERVER
        var table = connection.Query <character_timegates>("SELECT timegateName, timegateCount, timegateHours FROM character_timegates WHERE character=?", player.name);
        foreach (var row in table)
        {
            UCE_Timegate timegate = new UCE_Timegate();
            timegate.name  = row.timegateName;
            timegate.count = row.timegateCount;
            timegate.hours = row.timegateHours;
            timegate.valid = true;
            player.UCE_timegates.Add(timegate);
        }
#endif
    }