예제 #1
0
        public Action BuildSearchLogix(RefID query)
        {
            Slot logix = mainSlot.AddSlot("Search logix");

            Network.GET_String     getString = logix.AttachComponent <Network.GET_String>();
            ValueRegister <string> url       = logix.AttachComponent <ValueRegister <string> >();

            url.Value.Value = "https://better-lightning-crate.glitch.me/";
            FormatString        formatString = logix.AttachComponent <FormatString>();
            ValueField <string> type         = logix.AttachComponent <ValueField <string> >();
            ValueField <string> format       = logix.AttachComponent <ValueField <string> >();

            format.Value.Value        = "{0}/{1}/{2}";
            formatString.Format.Value = format.Value.ReferenceID;
            formatString.Parameters.Add();
            formatString.Parameters.Add();
            formatString.Parameters.Add();
            formatString.Parameters[0].Value = url.Value.ReferenceID;
            formatString.Parameters[1].Value = type.Value.ReferenceID;
            formatString.Parameters[2].Value = query;
            getString.URL.Value = formatString.Str.ReferenceID;
            Actions.WriteValueNode <string> writeResponse = logix.AttachComponent <Actions.WriteValueNode <string> >();
            ValueRegister <string>          response      = logix.AttachComponent <ValueRegister <string> >();

            searchResponse              = response;
            writeResponse.Value.Value   = getString.Content.ReferenceID;
            writeResponse.Target.Value  = response.Value.ReferenceID;
            getString.OnResponse.Target = writeResponse.Write;
            //writeResponse.Target.OwnerNode.RemoveAllLogixBoxes();
            //LogixHelper.MoveUnder(writeResponse.Target.OwnerNode, logix, true);
            //getString.Request();
            return(getString.Request);
        }
예제 #2
0
        private bool ParseRegisterInfo(ParseTreeNode node, Block block, out ValueBase res)
        {
            res = null;
            //Determine pattern
            if (node.Term.Name == "operand-register")
            {
                var spcfyNode = node.ChildNodes[1];
                if (spcfyNode.Term.Name == "identifier")
                {
                    res = new ValueRegister(new RegisterInfo(spcfyNode.Token.Text));
                }
                else
                {
                    res = new ValueRegister(new RegisterInfo((int)spcfyNode.Token.Value));
                }
                return(true);
            }

            ReportError("RegisterImmediate", "Unknown immediate value format.", node);
            return(false);
        }
예제 #3
0
 public Cevent()
 {
     ValueRegister.RegisterReflect(GetPropertyName(() => GpsPositionRawData), load => _gpsPosition = load,
                                   () => _gpsPosition);
 }
예제 #4
0
 protected Entity()
 {
     _valueRegister = new ValueRegister(this);
 }