Пример #1
0
    public Node(Root _root, dobj _props = null)
    {
        a_Parent = null;
        a_Root   = _root;

        Initialize(_props);
    }
Пример #2
0
    public static void Main(string[] args)
    {
        Program p = new Program();

        dobj obj1 = p.producer;
        dobj obj2 = p.producer;
        dobj obj3 = p.producer;
        dobj obj4 = p.producer;
        dobj obj5 = p.producer;

        dobj cobj1 = p.consumer;
        dobj cobj2 = p.consumer;
        dobj cobj3 = p.consumer;
        dobj cobj4 = p.consumer;
        dobj cobj5 = p.consumer;

        while (true)
        {
            obj1.BeginInvoke(null, null);
            obj2.BeginInvoke(null, null);
            obj3.BeginInvoke(null, null);
            obj4.BeginInvoke(null, null);
            obj5.BeginInvoke(null, null);
            if (Program.goods > 0)
            {
                cobj1.BeginInvoke(null, null);
                cobj2.BeginInvoke(null, null);
                cobj3.BeginInvoke(null, null);
                cobj4.BeginInvoke(null, null);
                cobj5.BeginInvoke(null, null);
            }
        }
    }
Пример #3
0
 protected override void OnDidMount()
 {
     Corutine.Tick(() => Data = new dobj()
     {
         { "hui", 3 }
     }, 1);
 }
Пример #4
0
 protected override void OnUpdate()
 {
     Stash = new dobj()
     {
         { "countRender3", (int)(Stash["countRender3"]) + 1 }
     };
 }
Пример #5
0
    public Node(Node _parrent, dobj _props = null)
    {
        a_Parent = _parrent;
        a_Root   = _parrent.a_Root;

        Initialize(_props ?? new dobj());
    }
Пример #6
0
 protected override void OnWillMount()
 {
     Stash = new dobj()
     {
         { "countRender3", 0 }
     };
 }
Пример #7
0
    // вызывается при инициализации компонента, когда она будет пока хз
    private void Initialize(dobj _props)
    {
        InitUpdateProps(_props);

        Init();
        Generate();
    }
Пример #8
0
    public void Invoke(dobj _data)
    {
        // тут будет не SceneElement а vicos Component, тут в коде я малясь погаречился

        /*if( a_Subscribers.Any() )
         *  foreach( ModelSubscriber subscriber in a_Subscribers )
         *      subscriber.Update();*/
    }
Пример #9
0
        public Component(dobj _props, params Component[] _childs)
        {
            a_Props = new dobj();
            a_Data  = new dobj();
            a_Stash = new dobj();

            InitProps(_props ?? new dobj());

            InitChilds(_childs);
        }
Пример #10
0
        public CssContainer(Element _sceneElement, dobj _values = null, CssContainer _parent = null)
        {
            a_SceneElement     = _sceneElement;
            a_SecondProperties = new List <CssSecondProperty>();
            Properties         = new List <CssFirstProperty>();
            InheritProperties  = new List <CssFirstProperty>();

            InitParent(_parent, false);

            if (_values != null)
            {
                Update(_values);
            }
        }
Пример #11
0
    private void Merge(dobj _state, dobj _newData, ModelNode _subTree)
    {
        // идём по ключам стейта и newData, т.к. они отсортированы, одновременно
        // для поддеревьев, у которых одинаковые хешсуммы ничего не делаем,
        // у которых различаются - рекурсивно вызываем Merge,
        // добавляем отсутствующие вершины, удаляем удалённые

        int i = 0, j = 0;

        while (i < _state.Count || j < _newData.Count)
        {
        }

        // потом алгоритм напишешь
    }
Пример #12
0
        // возвращает прошлые данные
        internal void MigrateComponent(Component from)
        {
            /*bool wasChanges = false;
             *
             * if ( Utils.ListComparer<string>.Compare( from.Class, Class ) )
             * {
             *  a_Class = from.Class;
             *
             *  wasChanges = true;
             * }
             *
             * if ( Utils.ListComparer<string>.Compare( from.State, State ) )
             * {
             *  a_State = from.State;
             *
             *  wasChanges = true;
             * }
             *
             * if ( !from.Data.Equals(Data) )
             * {
             *  a_Data = from.Data;
             *
             *  wasChanges = true;
             * }
             *
             * if ( !from.Props.Equals(Props) )
             * {
             *  a_Props = from.Props;
             *
             *  wasChanges = true;
             * }
             *
             * if( wasChanges )
             *  UpdateComponent();
             */

            a_Class = from.Class;
            a_State = from.State;
            a_Data  = from.Data;
            a_Props = from.Props;

            DOMNode.Update();
        }
Пример #13
0
    public dobj Merge(params dobj[] _dobjs)
    {
        dobj ret = new dobj();

        foreach (dobj dobj in _dobjs)
        {
            foreach (KeyValuePair <string, object> kv in dobj)
            {
                string strVal = (kv.Value as string);
                if (strVal != null && strVal == String.Empty)
                {
                    continue;
                }

                ret[kv.Key] = kv.Value;
            }
        }

        return(ret);
    }
Пример #14
0
    public Box2(dobj props, params Component[] childs)
        : base(props, childs)
    {
        InitData(
            new dobj()
        {
            { "petr", "fedua" },
            { "kuka", "reku" },
            { "chlen", 3 },
            { "chlen2", new dobj()
              {
                  { "dyada", "vasya" },
                  { "petr", "fedua" },
                  { "kuka", "reku" },
                  { "chlen", 3 },
                  { "chlen2", 3 }
              } }
        }
            );

        countRender3 = 0;
    }
Пример #15
0
        public void Update(dobj _values, bool needUpdateSecond = true)
        {
            {
                // свойство - значение
                string           key      = "";
                string           value    = "";
                CssFirstProperty property = Css.Resolve(key, value);
            }

            // все доби теперь упорядочены, есть 4 случая:
            // 0. и то и то пусто - ничего не делаем
            // 1. текущие вальюсы пустые - просто создаём новые
            // 2. новые вальюсы пустые - удаляем существующие
            // 3. и то и то не пусто:
            //  3.1: до конца добби не дошли ни в новых ни в текущих вальюсах - идём по обоим добби в алфавитном порядке и сравниваем свойства, удаляем несуществующие, добавляем новые, меняем меняющиеся
            //  3.2: прошли все существующие свойства и остались новые: добавляем всех
            //  3.3: прошли все новые свойства - удаляем существующие

            if (needUpdateSecond)
            {
                UpdateSecond();
            }
        }
Пример #16
0
        private void InitProps(dobj _newProps)
        {
            #if DEVELOPMENT
            // всяческие проверки свойств
            #endif

            dobj newProps = _newProps.Merge(OnWillReceiveProps(_newProps) ?? new dobj());

            a_Id  = ((string)newProps["id"]) ?? "";
            a_Key = ((string)newProps["key"]) ?? "";

            a_Class = StrTolist((string)newProps["class"] ?? "");
            a_State = StrTolist((string)newProps["state"] ?? "");

            a_Props = newProps.Merge(new dobj()
            {
                { "id", string.Empty },
                { "key", string.Empty },
                { "class", string.Empty },
                { "state", string.Empty }
            });

            a_Data = GetDerivedStateFromProps() ?? new dobj();
        }
Пример #17
0
        // либо все потомки переедут в другой контейнер и отпишутся от текущего на этом этапе
        // либо все потомки помрут вместе с их родителем
        //public event Action OnDestroy;

        public CssContainer(Element _sceneElement, CssContainer _parent = null, dobj _values = null)
            : this(_sceneElement, _values, _parent)
        {
        }
Пример #18
0
 protected void InitData(dobj data)
 {
     a_Data = data;
 }
Пример #19
0
 public AldousBroderBelyakov(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }
Пример #20
0
 // Сомпонент получает новые свойства. Тут можно иx немного изменить
 // ничего не обновлено, на вxод приxодят новые свойства
 // возвращаются изменённые новые свойства
 protected virtual dobj OnWillReceiveProps(dobj newProps)
 {
     return(null);
 }
Пример #21
0
    // вызывается откуда угодно для обновления
    // как это будет работать - хз, на данном этапе можно отдать свойства в Node
    public void Update(dobj _props)
    {
        InitUpdateProps(_props);

        Generate();
    }
Пример #22
0
 public TextureMaze(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }
Пример #23
0
 public Box(dobj props, params Component[] childs)
     : base(props, childs)
 {
 }
Пример #24
0
 public FragmentRandome(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }
Пример #25
0
 public Maze(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }
Пример #26
0
 private void InitUpdateProps(dobj _props)
 {
     Props = _props;
 }
Пример #27
0
 public Amari(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }
Пример #28
0
 public Text(dobj props, string child)
     : base(props)
 {
     //TODO: шото тут надо сделать чтобы текст инициализировать
 }
Пример #29
0
 public BelyakovRandome(Node _parent, dobj _props)
     : base(_parent, _props)
 {
 }