示例#1
0
    public void Update(SystemDataFilter filter)
    {
        Counter counter = filter.GetWritableResc <Counter>();

        counter.current++;
        filter.SetWritableResc(counter);
    }
示例#2
0
    public void Update(SystemDataFilter filter)
    {
        Counter counter = filter.GetReadableResc <Counter>();

        if (counter.current % 2 == 1)
        {
            Console.WriteLine("ODD!");
        }
    }
示例#3
0
    public void Update(SystemDataFilter filter)
    {
        Time time = filter.GetWritableResc <Time>();

        if (time.initialized)
        {
            time.deltaTime = DateTime.Now.Millisecond - time.lastTime;
            time.lastTime  = DateTime.Now.Millisecond;
            time.total    += time.deltaTime;
        }
        else
        {
            time.lastTime    = DateTime.Now.Millisecond;
            time.total       = 0;
            time.deltaTime   = 0;
            time.initialized = true;
        }
        filter.SetWritableResc <Time>(time);
    }
示例#4
0
    internal void RunUpdateSystemGroup(List <ISystem> systems)
    {
        List <Thread> threads = new List <Thread>();

        foreach (ISystem s in systems)
        {
            SystemDataFilter sFilter = new SystemDataFilter(this, s.compRead, s.compWrite, s.compAddable, s.compExclude, s.rescRead, s.rescWrite, s.entityAccess, s.entityDeleteAccess);
            Thread           sThread = new Thread(delegate()
            {
                s.Update(sFilter);
                foreach (KeyValuePair <Type, IComponent> kvp in sFilter.rescWrite)
                {
                    resourceLUT[kvp.Key] = kvp.Value;
                }
            });
            sThread.Start();
            threads.Add(sThread);
        }
        foreach (Thread t in threads)
        {
            t.Join();
        }
    }
示例#5
0
    public void Update(SystemDataFilter filter)
    {
        Time time = filter.GetReadableResc <Time>();

        Console.WriteLine("Total Time:\t" + time.total + "\tDeltaTime:\t" + time.deltaTime);
    }