Esempio n. 1
0
        // ( w h -- Canvas )
        public override void Execute(Interpreter interp)
        {
            IntItem h = (IntItem)interp.StackPop();
            IntItem w = (IntItem)interp.StackPop();

            interp.StackPush(new CanvasItem(w.IntValue, h.IntValue));
        }
Esempio n. 2
0
        // ( item -- 2*item )
        public override void Execute(Interpreter interp)
        {
            IntItem item   = (IntItem)interp.StackPop();
            IntItem result = new IntItem(2 * item.IntValue);

            interp.StackPush(result);
        }
Esempio n. 3
0
        public void TestConstruction()
        {
            IntItem val = new IntItem(100);

            Assert.IsNotNull(val);
            Assert.AreEqual(100, val.IntValue);
        }
Esempio n. 4
0
        IntItem AddInts(dynamic l, dynamic r)
        {
            int     val    = l.IntValue + r.IntValue;
            IntItem result = new IntItem(val);

            return(result);
        }
Esempio n. 5
0
        // ( y max-int -- flipped-y )
        public override void Execute(Interpreter interp)
        {
            IntItem maxVal = (IntItem)interp.StackPop();
            IntItem value  = (IntItem)interp.StackPop();
            int     result = maxVal.IntValue - 1 - value.IntValue;

            interp.StackPush(new IntItem(result));
        }
Esempio n. 6
0
        // ( Canvas x y -- color )
        public override void Execute(Interpreter interp)
        {
            IntItem    y      = (IntItem)interp.StackPop();
            IntItem    x      = (IntItem)interp.StackPop();
            CanvasItem canvas = (CanvasItem)interp.StackPop();

            interp.StackPush(new Vector4Item(canvas.PixelAt(x.IntValue, y.IntValue)));
        }
Esempio n. 7
0
        public void TestAddIntItemAndDoubleItem()
        {
            IntItem    val1 = new IntItem(1);
            DoubleItem val2 = new DoubleItem(3.4);

            DoubleItem s = AddDoubles(val1, val2);

            Assert.AreEqual(4.4, s.DoubleValue, 0.01);
        }
Esempio n. 8
0
        public void TestAddTwoIntItems()
        {
            IntItem val1 = new IntItem(1);
            IntItem val2 = new IntItem(2);

            IntItem s = AddInts(val1, val2);

            Assert.AreEqual(3, s.IntValue);
        }
Esempio n. 9
0
        public void TestAddIntItemAndDoubleItem()
        {
            IntItem    val1 = new IntItem(1);
            DoubleItem val2 = new DoubleItem(3.4);

            IntItem s = AddInts(val1, val2);

            Assert.AreEqual(4, s.IntValue);
        }
Esempio n. 10
0
    static Item _GetIntItem(int inItemNameTextID,
                            PlayerPersistentInfoData inPlayerData,
                            List <FriendInfo> inFriendsData,
                            E_Better inBetter,
                            IntExtractor inExtractor)
    {
        IntItem item = new IntItem();

        item.m_NameIndex = inItemNameTextID;

        return(_GetIntItem(item, inPlayerData, inFriendsData, inBetter, inExtractor));
    }
Esempio n. 11
0
        static void Main(string[] args)
        {
            // json string
            var json = "[{\"value\":5,\"type\":\"int\",\"name\":\"bar\"},{\"value\":\"some thing\",\"type\":\"string\",\"name\":\"foo \"},{\"value\":2,\"type\":\"int\",\"name\":\"baz\"}]";

            // The above is deserialized into a list of Items, instead of a hetrogenous list of
            // IntItem and StringItem
            var result = JsonConvert.DeserializeObject <List <Item> >(json, new JsonItemConverter());

            if (result != null)
            {
                foreach (var r in result)
                {
                    switch (r)
                    {
                    case IntItem i:
                        Console.WriteLine($"{i.Name}={i.Value} of type {i.ValueType}");
                        break;

                    case StringItem s:
                        Console.WriteLine($"{s.Name}:{s.Value} of type {s.ValueType}");
                        break;

                    default:
                        throw new ArgumentException(
                                  message: "Unexpected type",
                                  paramName: nameof(r));
                    }
                }
            }
            ;


            var formattedJson = JsonConvert.SerializeObject(result, Formatting.Indented);

            Console.WriteLine($"as json {formattedJson}");

            var testData = new List <Item>();
            var sitem    = new StringItem();

            testData.Add(sitem);
            var iitem = new IntItem();

            testData.Add(iitem);
            var formattedJson2 = JsonConvert.SerializeObject(testData, Formatting.Indented);

            Console.WriteLine($"as json {formattedJson2}");
        }
Esempio n. 12
0
        // ( double max-int -- int )
        public override void Execute(Interpreter interp)
        {
            IntItem    maxVal   = (IntItem)interp.StackPop();
            DoubleItem value    = (DoubleItem)interp.StackPop();
            int        intValue = value.IntValue;

            if (intValue < 0)
            {
                intValue = 0;
            }
            if (intValue > maxVal.IntValue - 1)
            {
                intValue = maxVal.IntValue - 1;
            }
            interp.StackPush(new IntItem(intValue));
        }
Esempio n. 13
0
    static Item _GetIntItem(IntItem inItem,
                            PlayerPersistentInfoData inPlayerData,
                            List <FriendInfo> inFriendsData,
                            E_Better inBetter,
                            IntExtractor inExtractor)
    {
        IntItem item = inItem;

        item.m_PlayerValue = -1;
        item.m_SecondValue = -1;
        return(item);

        /*
         * IntItem item        = inItem;
         * item.m_PlayerValue = inExtractor(inPlayerData);
         * item.m_SecondValue = -1;
         *
         * foreach(FriendInfo fi in inFriendsData)
         * {
         *      int friendValue = inExtractor(fi.m_PPIData);
         *      if(friendValue > item.m_SecondValue)
         *      {
         *              item.m_SecondValue           = friendValue;
         *              item.m_SecondValueFriendName = fi.m_Name;
         *      }
         * }
         *
         * if(inBetter != E_Better.None && inFriendsData.Count > 0)
         * {
         *      item.m_HighlightPlayer = (inBetter == E_Better.Bigger  && item.m_PlayerValue > item.m_SecondValue) ||
         *                                                       (inBetter == E_Better.Smaller && item.m_PlayerValue < item.m_SecondValue);
         *      item.m_HighlightFriend = (inBetter == E_Better.Bigger  && item.m_PlayerValue < item.m_SecondValue) ||
         *                                                       (inBetter == E_Better.Smaller && item.m_PlayerValue > item.m_SecondValue);
         * }
         *
         * return item;
         */
    }
Esempio n. 14
0
 StackItem multiply(IntItem l, IntItem r)
 {
     return(new IntItem(l.IntValue * r.IntValue));
 }
Esempio n. 15
0
 StackItem minus(IntItem l, IntItem r)
 {
     return(new IntItem(l.IntValue - r.IntValue));
 }
Esempio n. 16
0
 StackItem negate(IntItem item)
 {
     return(new IntItem(-item.IntValue));
 }
Esempio n. 17
0
 StackItem plus(IntItem l, IntItem r)
 {
     return(new IntItem(l.IntValue + r.IntValue));
 }