private void RotateRight(ColorNode <TKey, TValue> node)
        {
            ColorNode <TKey, TValue> tempNode = node.LeftChildNode;

            node.LeftChildNode = tempNode.RightChildNode;

            if (tempNode.RightChildNode != null)
            {
                tempNode.RightChildNode.ParentNode = node;
            }
            tempNode.ParentNode = node.ParentNode;

            if (node.ParentNode == null)
            {
                RootNode = tempNode;
            }
            else
            {
                if (node == node.ParentNode.RightChildNode)
                {
                    node.ParentNode.RightChildNode = tempNode;
                }
                else
                {
                    node.ParentNode.LeftChildNode = tempNode;
                }
            }
            tempNode.RightChildNode = node;
            node.ParentNode         = tempNode;
        }
        private async Task UpdatePricelistEquipment(
            EquipmentCatalog equipmentCatalog,
            ColorNode colorNode)
        {
            string   pricelist          = null;
            DateTime?productionFromDate = null;
            DateTime?validFromDate      = null;

            if (colorNode.pricelist != null)
            {
                pricelist          = colorNode.pricelist.price;
                productionFromDate = colorNode.pricelist.productionFromDate;
                validFromDate      = colorNode.pricelist.validFromDate;
            }
            await this.CarContext.FindOrCreatePricelistCatalogAsync
            (
                colorNode.name,
                colorNode.metallic,
                colorNode.hue,
                colorNode.picture,
                pricelist,
                productionFromDate,
                validFromDate,
                equipmentCatalog.Id
            );
        }
Beispiel #3
0
 public NodeFactory()
 {
     builtin["Anchor"]                  = new AnchorNode();
     builtin["Appearance"]              = new AppearanceNode();
     builtin["Background"]              = new BackgroundNode();
     builtin["Box"]                     = new BoxNode();
     builtin["Color"]                   = new ColorNode();
     builtin["Cone"]                    = new ConeNode();
     builtin["Coordinate"]              = new CoordinateNode();
     builtin["CoordinateInterpolator"]  = new CoordinateInterpolatorNode();
     builtin["Cylinder"]                = new CylinderNode();
     builtin["DirectionalLight"]        = new DirectionalLightNode();
     builtin["Extrusion"]               = new ExtrusionNode();
     builtin["Group"]                   = new GroupNode();
     builtin["Collision"]               = new CollisionNode();
     builtin["Switch"]                  = new SwitchNode();
     builtin["IndexedFaceSet"]          = new IndexedFaceSetNode();
     builtin["IndexedLineSet"]          = new IndexedLineSetNode();
     builtin["Material"]                = new MaterialNode();
     builtin["NavigationInfo"]          = new NavigationInfoNode();
     builtin["OrientationInterpolator"] = new OrientationInterpolatorNode();
     builtin["Normal"]                  = new NormalNode();
     builtin["PixelTexture"]            = new PixelTextureNode();
     builtin["PointLight"]              = new PointLightNode();
     builtin["PositionInterpolator"]    = new PositionInterpolatorNode();
     builtin["ScalarInterpolator"]      = new ScalarInterpolationNode();
     builtin["Shape"]                   = new ShapeNode();
     builtin["Sphere"]                  = new SphereNode();
     builtin["TextureCoordinate"]       = new TextureCoordinateNode();
     builtin["TimeSensor"]              = new TimeSensorNode();
     builtin["Transform"]               = new TransformNode();
     builtin["Viewpoint"]               = new ViewpointNode();
     builtin["WorldInfo"]               = new WorldInfoNode();
 }
Beispiel #4
0
        private void DrawBorder(LabelOnGround entityLabel)
        {
            IngameUIElements ui = GameController.Game.IngameState.IngameUi;

            if (entityLabel.IsVisible)
            {
                RectangleF rect = entityLabel.Label.GetClientRect();
                if ((ui.OpenLeftPanel.IsVisible && ui.OpenLeftPanel.GetClientRect().Intersects(rect)) ||
                    (ui.OpenRightPanel.IsVisible && ui.OpenRightPanel.GetClientRect().Intersects(rect)))
                {
                    return;
                }


                ColorNode borderColor = Settings.BorderSettings.BorderColor;
                if (!entityLabel.CanPickUp)
                {
                    borderColor = Settings.BorderSettings.NotMyItemBorderColor;
                    TimeSpan timeLeft = entityLabel.TimeLeft;
                    if (Settings.BorderSettings.ShowTimer && timeLeft.TotalMilliseconds > 0)
                    {
                        borderColor = Settings.BorderSettings.CantPickUpBorderColor;
                        Graphics.DrawText(timeLeft.ToString(@"mm\:ss"), Settings.BorderSettings.TimerTextSize, rect.TopRight.Translate(4, 0));
                    }
                }
                Graphics.DrawFrame(rect, Settings.BorderSettings.BorderWidth, borderColor);
            }
        }
Beispiel #5
0
    /// <summary> Moves any ILayer from layer to layer when ZPos is changed. </summary>
    private void OnFieldChanged(object Object, FieldOrProperty field, object oldValue)
    {
        if (!(Object is IGameObject && sector.Contains((IGameObject)Object)))           //return, if it's not (GameObject in our sector)
        {
            return;
        }

        if (Object is IDrawableLayer && field.Name == "Layer")           //filter for ILayer.Layer
        {
            Layer     layer    = (Layer)SceneGraphRoot;
            ILayer    ILayer   = (ILayer)Object;
            ColorNode color    = colors[ILayer];
            int       oldLayer = (int)oldValue;

            layer.Remove(oldLayer, color);
            layer.Add(ILayer.Layer, color);

            QueueDraw();
        }

        PropertyPropertiesAttribute propertyProperties = (PropertyPropertiesAttribute)
                                                         field.GetCustomAttribute(typeof(PropertyPropertiesAttribute));

        if (propertyProperties != null && propertyProperties.RedrawOnChange)            //Every property that affects appearance is marked using this attribute
        {
            QueueDraw();
        }
    }
Beispiel #6
0
 private void ShiftRightCallback()
 {
     //Debug.Log("Shifting right from " + _activeColor.color + " to " + _activeColor.RightNode.color);
     InactivateColor(_activeColor.color);
     _activeColor = _activeColor.RightNode;
     ActivateColor(_activeColor.color);
 }
Beispiel #7
0
    private void OnObjectAdded(Sector sector, IGameObject Object)
    {
        if (Object is IObject)
        {
            IObject iObject = (IObject)Object;
            Node    node    = iObject.GetSceneGraphNode();
            if (node != null)
            {
                objectsNode.AddChild(node);
            }
        }

        Layer layer = (Layer)SceneGraphRoot;

        if (Object is Tilemap)
        {
            Tilemap   tilemap   = (Tilemap)Object;
            Node      tnode     = new TilemapNode(tilemap, level.Tileset);
            ColorNode colorNode = new ColorNode(tnode, new Color(1f, 1f, 1f, 1f));
            layer.Add(tilemap.ZPos, colorNode);
            LogManager.Log(LogLevel.Debug, "Adding tilemap color: {0}", Object.GetHashCode());
            colors[tilemap] = colorNode;
        }

        if (Object is Background)
        {
            Background background = (Background)Object;

            Node mynode = background.GetSceneGraphNode();
            if (mynode != null)
            {
                backgroundNode.AddChild(mynode);
            }
        }
    }
Beispiel #8
0
 private void ShiftLeftCallback()
 {
     //Debug.Log("Shifting left from " + _activeColor.color + " to " + _activeColor.LeftNode.color);
     InactivateColor(_activeColor.color);
     _activeColor = _activeColor.LeftNode;
     ActivateColor(_activeColor.color);
 }
Beispiel #9
0
 public void OnChangeColor()
 {
     if (value == 1)
     {
         this.color = ColorNode.WHITE;
     }
     else if (value == 2)
     {
         this.color = ColorNode.RED;
     }
     else if (value == 3)
     {
         this.color = ColorNode.YELLOW;
     }
     else if (value == 4)
     {
         this.color = ColorNode.GREEN;
     }
     else if (value == 5)
     {
         this.color = ColorNode.CYAN;
     }
     //else if (value == 6)
     //{
     //    this.color = ColorNode.PINK;
     //}
     //else if (value == 7)
     //{
     //    this.color = ColorNode.BLACK;
     //}
 }
Beispiel #10
0
 public PassiveSkillTreePlanterSettings()
 {
     BorderWidth     = new RangeNode <int>(1, 1, 5);
     LineWidth       = new RangeNode <int>(3, 0, 5);
     LineColor       = new ColorNode(Color.Gray);
     SelectedURLFile = string.Empty;
 }
Beispiel #11
0
        public Settings()
        {
            LeagueList      = new ListNode();
            ReloadButton    = new ButtonNode();
            AutoReload      = new ToggleNode();
            AutoReloadTimer = new RangeNode <int>(15, 1, 60);
            UniTextColor    = Color.White;
            Debug           = new ToggleNode(false);

            // Visible stash tab
            VisibleStashValue           = new ToggleNode(true);
            StashValueX                 = new RangeNode <int>(100, 0, 1920);
            StashValueY                 = new RangeNode <int>(800, 0, 1080);
            StashValueColorNode         = new ColorNode(Color.AliceBlue);
            StashValueFontSize          = new RangeNode <int>(20, 0, 200);
            StashValueSignificantDigits = new RangeNode <int>(5, 0, 10);

            // Inventory Value
            HighlightUniqueJunk        = new ToggleNode(true);
            HighlightColor             = new ColorNode(Color.AliceBlue);
            HighlightFontSize          = new RangeNode <int>(20, 0, 200);
            HighlightSignificantDigits = new RangeNode <int>(5, 0, 10);
            InventoryValueCutOff       = new RangeNode <int>(1, 0, 10);

            ProphecyBackground = Color.Black;

            ProphecyChaosValue      = Color.White;
            ProphecyProecyName      = Color.White;
            ProphecyProecySealColor = Color.White;
        }
Beispiel #12
0
        public bool MoveNext()
        {
            if (lastNode == null)
            {
                Build(out firstNode, out lastNode);

                // Right after building, it may be invalid,
                // because we haven't ever checked anything
                // Reset will force the whole chain to verify
                return(firstNode.Reset(boardView));
            }

            ColorNode currentNode = lastNode.PrevNode;

            while (currentNode != null)
            {
                bool success = currentNode.Bump(boardView);
                if (success)
                {
                    return(true);
                }

                currentNode = currentNode.PrevNode.PrevNode;
            }

            return(false);
        }
Beispiel #13
0
    public SectorRenderer(Application application, Level level, Sector sector)
    {
        this.application = application;
        this.level       = level;
        this.sector      = sector;
        Layer layer = new Layer();

        foreach (IDrawableLayer IDrawableLayer in sector.GetObjects(typeof(IDrawableLayer)))
        {
            Node node = IDrawableLayer.GetSceneGraphNode();
            if (IDrawableLayer is Tilemap)              //Special handling for tilemaps
            {
                node = new TilemapNode((Tilemap)IDrawableLayer, level.Tileset);
            }
            ColorNode colorNode = new ColorNode(node, new Color(1f, 1f, 1f, 1f), true);
            layer.Add(IDrawableLayer.Layer, colorNode);
            colors[IDrawableLayer] = colorNode;
        }

        objectsNode      = new NodeWithChilds();
        objectsColorNode = new ColorNode(objectsNode, new Color(1f, 1f, 1f, 1f));
        layer.Add(1, objectsColorNode);

        foreach (IObject Object in sector.GetObjects(typeof(IObject)))
        {
            Node node = Object.GetSceneGraphNode();
            if (node != null)
            {
                objectsNode.AddChild(node);
            }
        }

        // fill remaining place with one color
        sectorFill      = new SceneGraph.Rectangle();
        sectorFill.Fill = true;
        ColorNode color = new ColorNode(sectorFill, new Drawing.Color(0.4f, 0.3f, 0.4f));

        layer.Add(-10000, color);

        // draw border around sector...
        sectorBBox      = new SceneGraph.Rectangle();
        sectorBBox.Fill = false;
        color           = new ColorNode(sectorBBox, new Drawing.Color(1, 0.3f, 1));
        layer.Add(1000, color);

        // draw border around selected layer...
        color = new ColorNode(new TilemapBorder(application), new Drawing.Color(1, 1, 0));
        layer.Add(1001, color);

        OnSizeChanged(sector);

        this.SceneGraphRoot = layer;

        sector.ObjectAdded         += OnObjectAdded;
        sector.ObjectRemoved       += OnObjectRemoved;
        sector.SizeChanged         += OnSizeChanged;
        application.TilemapChanged += OnTilemapChanged;
        //TODO: It should be possible to iterate over all (currently present?) types that implements ILayer.. How?
        FieldOrProperty.AnyFieldChanged += OnFieldChanged;
    }
Beispiel #14
0
        public Settings()
        {
            LeagueList      = new ListNode();
            ReloadButton    = new ButtonNode();
            AutoReload      = new ToggleNode();
            AutoReloadTimer = new RangeNode <int>(15, 1, 60);
            UniTextColor    = Color.White;
            Debug           = new ToggleNode(false);

            // Visible stash tab
            VisibleStashValue           = new ToggleNode(true);
            StashValueX                 = new RangeNode <int>(100, 0, 5000);
            StashValueY                 = new RangeNode <int>(800, 0, 5000);
            StashValueColorNode         = new ColorNode(Color.AliceBlue);
            StashValueFontSize          = new RangeNode <int>(20, 0, 200);
            StashValueSignificantDigits = new RangeNode <int>(5, 0, 10);

            // Inventory Value
            VisibleInventoryValue           = new ToggleNode(true);
            InventoryValueX                 = new RangeNode <int>(100, 0, 5000);
            InventoryValueY                 = new RangeNode <int>(800, 0, 5000);
            InventoryValueColorNode         = new ColorNode(Color.AliceBlue);
            InventoryValueSignificantDigits = new RangeNode <int>(5, 0, 10);

            HighlightUniqueJunk        = new ToggleNode(true);
            HelmetEnchantPrices        = new ToggleNode(true);
            HighlightColor             = new ColorNode(Color.AliceBlue);
            HighlightFontSize          = new RangeNode <int>(20, 0, 200);
            HighlightSignificantDigits = new RangeNode <int>(5, 0, 10);
            InventoryValueCutOff       = new RangeNode <int>(1, 0, 10);
        }
Beispiel #15
0
    /// <summary>
    ///		Change color of any ILayer . Useful to hide any ILayer objects (they are not drawn, because ColorNodes are set do not-draw-when-transparent)
    /// </summary>
    /// <remarks>
    ///		Used to hide ILayer in <see cref="LayerListWidget.OnVisibilityChange"/>.
    /// </remarks>
    /// <param name="ILayer">The ILayer to change color of.</param>
    /// <param name="color">The new color.</param>
    public void SetILayerColor(ILayer ILayer, Color color)
    {
        LogManager.Log(LogLevel.Debug, "Set color of ILayer {0}", ILayer.GetHashCode());
        ColorNode colorNode = colors[ILayer];

        colorNode.Color = color;
        QueueDraw();
    }
Beispiel #16
0
            public GapNode(ColorNode prev)
            {
                PrevNode = prev;
                NextNode = null;

                Start = PrevNode != null ? PrevNode.End : 0;
                End   = Start;
            }
Beispiel #17
0
    public override NeuralNode Clone()
    {
        ColorNode res = (ColorNode)NeuralNode.create(NodeType.FULLCOLOR);

        res.SetWeights(actualWeights, this.b);
        res.SetNonzeroIndices();
        return(res);
    }
Beispiel #18
0
    /// <summary>
    ///		Change color of a tilemap. Useful to hide tilemaps (but they are still drawn that way...)
    /// </summary>
    /// <remarks>
    ///		Used to hide tilemaps in <see cref="LayerListWidget.OnVisibilityChange"/>.
    /// </remarks>
    /// <param name="tilemap">The tilemap to change color of.</param>
    /// <param name="color">The new color.</param>
    public void SetTilemapColor(Tilemap tilemap, Color color)
    {
        LogManager.Log(LogLevel.Debug, "Set color of tilemap {0}", tilemap.GetHashCode());
        ColorNode colorNode = (ColorNode)colors[tilemap];

        colorNode.Color = color;
        QueueDraw();
    }
 public PassiveSkillTreePlanterSettings()
 {
     PickedBorderColor      = new ColorNode(Color.Gray);
     UnpickedBorderColor    = new ColorNode(Color.Green);
     WrongPickedBorderColor = new ColorNode(Color.Red);
     LineWidth       = new RangeNode <int>(3, 0, 5);
     LineColor       = new ColorNode(new Color(0, 255, 0, 50));
     SelectedURLFile = string.Empty;
 }
Beispiel #20
0
    public void GenerateColorFillMap()
    {
        allColorImageMap = new ColorNode[(int)colorMapSize.x, (int)colorMapSize.y];

        List <Coord> innerBlockCode = new List <Coord>();

        innerBlockCode.Add(new Coord(4, 7));
        innerBlockCode.Add(new Coord(4, 6));
        innerBlockCode.Add(new Coord(3, 5));
        innerBlockCode.Add(new Coord(1, 4));
        innerBlockCode.Add(new Coord(2, 4));

        innerBlockCode.Add(new Coord(7, 4));
        innerBlockCode.Add(new Coord(6, 4));
        innerBlockCode.Add(new Coord(5, 3));
        innerBlockCode.Add(new Coord(4, 1));
        innerBlockCode.Add(new Coord(4, 2));

        for (int x = 0; x < colorMapSize.x; x++)
        {
            for (int y = 0; y < colorMapSize.y; y++)
            {
                Vector3    tilePosition = CoordToImagePosition(x, y);
                GameObject newTile      = new GameObject(string.Format("Tile_{0}_{1}", x, y), typeof(Image));
                Image      newTileImage = newTile.GetComponent <Image>();
                ColorNode  newNode      = new ColorNode(x, y, newTileImage, false);
                allColorImageMap[x, y] = newNode;
                newTile.transform.SetParent(colorFillMap.transform);
                newTile.transform.localPosition = tilePosition;
                newTile.transform.localScale    = Vector3.one * (1 - outlinePercent);

                if (x == (int)colorMapSize.x / 2 && y == (int)colorMapSize.y / 2)
                {
                    colorMapCentre = newNode;
                }

                if (x == 0 || x == (colorMapSize.x - 1) || y == 0 || y == (colorMapSize.y - 1) || IsBlockCoord(innerBlockCode, x, y))
                {
                    newTileImage.color = Color.black;
                    newNode.isVisit    = true;
                }
            }
        }

        if (isUseDFS)
        {
            //DFS_FloodFill_Recursive(colorMapCentre, Color.white, Color.red);
            StartCoroutine(CoDFS_FloodFill_Recursive(colorMapCentre, Color.white, Color.red));
        }
        else
        {
            //BFS_FloodFill_Queue(colorMapCentre, Color.white, Color.red);
            StartCoroutine(CoBFS_FloodFill_Queue(colorMapCentre, Color.white, Color.red));
        }
    }
Beispiel #21
0
 public Settings()
 {
     GoodColor                    = new ColorNode(new Color(0, 125, 0, 150));
     VendorColor                  = new ColorNode(new Color(125, 0, 0, 150));
     MapsBorderColor              = new ColorNode(new Color(150, 110, 70, 150));
     ReloadSettingsNode           = new ButtonNode();
     ReloadSettingsNode.OnPressed = () => {
         XmlSerializer xmlSerializer = new XmlSerializer(typeof(Filter.FilterContainer));
         InventoryHelper.FilterContainer = (Filter.FilterContainer)xmlSerializer.Deserialize(new StreamReader("test.xml"));
     };
 }
        public override ColorNode <TKey, TValue> Insert(TKey key, TValue value)
        {
            var newNode = new ColorNode <TKey, TValue>
            {
                Key   = key,
                Value = value,
                Red   = true
            };

            BaseInsert(newNode);
            return(BalanceAfterInsert(newNode));
        }
Beispiel #23
0
        internal VacPackNode(string json) : base(json)
        {
            Amount = new AmountNode(_ParsedData["amount"]?.ToString() ?? "");
            Max    = new MaxNode(_ParsedData["max"]?.ToString() ?? "");
            Color  = new ColorNode(_ParsedData["color"]?.ToString() ?? "");

            SellectedSlot      = GetInt("sellected_slot");
            UseableSlots       = GetInt("useable_slots");
            EmtyItemSlots      = GetInt("emty_Item_slots");
            InGadgetMode       = GetBool("in_gadget_mode");
            InNimbleValleyMode = GetBool("in_nimble_valley_mode");
        }
    public SectorRenderer(Application application, Level level, Sector sector)
    {
        this.application = application;
        this.level = level;
        this.sector = sector;
        Layer layer = new Layer();

        foreach(IDrawableLayer IDrawableLayer in sector.GetObjects(typeof(IDrawableLayer))) {
            Node node = IDrawableLayer.GetSceneGraphNode();
            if (IDrawableLayer is Tilemap)	//Special handling for tilemaps
                node = new TilemapNode((Tilemap) IDrawableLayer, level.Tileset);
            ColorNode colorNode = new ColorNode(node, new Color(1f, 1f, 1f, 1f), true);
            layer.Add(IDrawableLayer.Layer, colorNode);
            colors[IDrawableLayer] = colorNode;
        }

        objectsNode = new NodeWithChilds();
        objectsColorNode = new ColorNode(objectsNode, new Color(1f, 1f, 1f, 1f));
        layer.Add(1, objectsColorNode);

        foreach(IObject Object in sector.GetObjects(typeof(IObject))) {
            Node node = Object.GetSceneGraphNode();
            if(node != null)
                objectsNode.AddChild(node);
        }

        // fill remaining place with one color
        sectorFill = new SceneGraph.Rectangle();
        sectorFill.Fill = true;
        ColorNode color = new ColorNode(sectorFill, new Drawing.Color(0.4f, 0.3f, 0.4f));
        layer.Add(-10000, color);

        // draw border around sector...
        sectorBBox = new SceneGraph.Rectangle();
        sectorBBox.Fill = false;
        color = new ColorNode(sectorBBox, new Drawing.Color(1, 0.3f, 1));
        layer.Add(1000, color);

        // draw border around selected layer...
        color = new ColorNode(new TilemapBorder(application), new Drawing.Color(1, 1, 0));
        layer.Add(1001, color);

        OnSizeChanged(sector);

        this.SceneGraphRoot = layer;

        sector.ObjectAdded += OnObjectAdded;
        sector.ObjectRemoved += OnObjectRemoved;
        sector.SizeChanged += OnSizeChanged;
        application.TilemapChanged += OnTilemapChanged;
        //TODO: It should be possible to iterate over all (currently present?) types that implements ILayer.. How?
        FieldOrProperty.AnyFieldChanged += OnFieldChanged;
    }
    public SectorRenderer(Level level, Sector sector)
    {
        this.level = level;
        Layer layer = new Layer();

        backgroundNode = new NodeWithChilds();
        backgroundColorNode = new ColorNode(backgroundNode, new Color(1f, 1f, 1f, 1f));
        layer.Add(-900, backgroundColorNode);
        foreach(Background background in sector.GetObjects(typeof(Background))) {
            Node node = background.GetSceneGraphNode();
            if(node == null) continue;
            backgroundNode.AddChild(node);
        }

        foreach(Tilemap tilemap in sector.GetObjects(typeof(Tilemap))) {
            Node node = new TilemapNode(tilemap, level.Tileset);
            ColorNode colorNode = new ColorNode(node, new Color(1f, 1f, 1f, 1f));
            layer.Add(tilemap.ZPos, colorNode);
            colors[tilemap] = colorNode;
        }

        objectsNode = new NodeWithChilds();
        objectsColorNode = new ColorNode(objectsNode, new Color(1f, 1f, 1f, 1f));
        layer.Add(1, objectsColorNode);

        foreach(IObject Object in sector.GetObjects(typeof(IObject))) {
            Node node = Object.GetSceneGraphNode();
            if(node != null)
                objectsNode.AddChild(node);
        }

        // draw border around sector...
        sectorFill = new SceneGraph.Rectangle();
        sectorFill.Fill = true;
        ColorNode color = new ColorNode(sectorFill, new Drawing.Color(0.4f, 0.3f, 0.4f));
        layer.Add(-10000, color);

        sectorBBox = new SceneGraph.Rectangle();
        sectorBBox.Fill = false;
        color = new ColorNode(sectorBBox, new Drawing.Color(1, 0.3f, 1));
        layer.Add(1000, color);

        OnSizeChanged(sector);

        this.SceneGraphRoot = layer;

        sector.ObjectAdded += OnObjectAdded;
        sector.ObjectRemoved += OnObjectRemoved;
        sector.SizeChanged += OnSizeChanged;

        Drag.DestSet(this, DestDefaults.All, ObjectListWidget.DragTargetEntries, Gdk.DragAction.Default);
        DragMotion += OnDragMotion;
    }
Beispiel #26
0
        public static Inline ToInline(this ColorNode node, Channel chan = null)
        {
            var span = (node as IContentNode).ToInline(chan);
            var prop = typeof(Brushes)
                       .GetProperties(BindingFlags.Static | BindingFlags.Public)
                       .FirstOrDefault(p => p.Name.Equals(node.Attribute, StringComparison.CurrentCultureIgnoreCase));

            if (prop != null)
            {
                span.Foreground = prop.GetValue(null) as Brush;
                // TODO: Text shadow?
            }
            return(span);
        }
Beispiel #27
0
    /// <summary> Moves tilemap from layer to layer when ZPos is changed. </summary>
    private void OnTilemapZPosModified(object Object, FieldOrProperty field, object oldValue)
    {
        if (colors.ContainsKey(Object))                 //is is our tilemap => our sector?
        {
            Layer     layer   = (Layer)SceneGraphRoot;
            Tilemap   tm      = (Tilemap)Object;
            ColorNode color   = (ColorNode)colors[tm];
            int       oldZPos = (int)oldValue;

            layer.Remove(oldZPos, color);
            layer.Add(tm.ZPos, color);

            QueueDraw();
        }
    }
        public PassiveSkillTreePlanterSettings()
        {
            var centerPos = BasePlugin.API.GameController.Window.GetWindowRectangle().Center;

            Enable                 = false;
            PickedBorderColor      = new ColorNode(Color.Gray);
            UnpickedBorderColor    = new ColorNode(Color.Green);
            WrongPickedBorderColor = new ColorNode(Color.Red);
            LineWidth              = new RangeNode <int>(3, 0, 5);
            LineColor              = new ColorNode(new Color(0, 255, 0, 50));
            ShowWindow             = false;
            SelectedURLFile        = string.Empty;
            LastSettingSize        = new ImGuiVector2(620, 376);
            LastSettingPos         = new ImGuiVector2(centerPos.X - LastSettingSize.X / 2, centerPos.Y - LastSettingSize.Y / 2);
        }
Beispiel #29
0
            public void SetNext(ColorNode color)
            {
                Debug.Assert(NextNode == null);
                Debug.Assert(Start == End);
                Debug.Assert(color != null);

                if (PrevNode != null)
                {
                    if (PrevNode.Color == color.Color)
                    {
                        IsRequired = true;
                    }
                }
                NextNode = color;

                Debug.Assert(NextNode.Start >= MinEnd);
                End = NextNode.Start;
            }
Beispiel #30
0
 public Color Apply(int uid, Color color)
 {
     if (this.colorsMap.ContainsKey(uid))
     {
         ColorNode node = this.colorsMap[uid];
         if (node.useColor)
         {
             color.r = node.color.r;
             color.g = node.color.g;
             color.b = node.color.b;
         }
         if (node.useAlpha)
         {
             color.a = node.color.a;
         }
     }
     return(color);
 }
Beispiel #31
0
        private void Build(out GapNode firstGap, out GapNode lastGap)
        {
            firstGap = new GapNode(null);
            GapNode prevGap = firstGap;

            for (int i = 0; i < constraints.Count; i++)
            {
                int       min       = boardView.ConstraintState.minValues[i];
                int       max       = boardView.ConstraintState.maxValues[i];
                ColorNode colorNode = new ColorNode(prevGap, constraints[i], min, max + 1);
                prevGap.SetNext(colorNode);

                prevGap = new GapNode(colorNode);
                colorNode.SetNext(prevGap);
            }

            prevGap.MarkAsEnd(boardView.Count);
            lastGap = prevGap;
        }
Beispiel #32
0
    void RandomColor()
    {
        int temp = Random.Range(1, 6);

        this.value    = temp;
        txtValue.text = this.value.ToString();
        switch (temp)
        {
        case 1:
            this.color = ColorNode.WHITE;
            this.GetComponent <Image>().color = Color.white;
            break;

        case 2:
            this.color = ColorNode.RED;
            this.GetComponent <Image>().color = Color.red;
            break;

        case 3:
            this.color = ColorNode.YELLOW;
            this.GetComponent <Image>().color = Color.yellow;
            break;

        case 4:
            this.color = ColorNode.GREEN;
            this.GetComponent <Image>().color = Color.green;
            break;

        case 5:
            this.color = ColorNode.CYAN;
            this.GetComponent <Image>().color = Color.cyan;
            break;
            //case 6:
            //    this.color = ColorNode.PINK;
            //    this.GetComponent<Image>().color = Color.magenta;
            //    break;
            //case 7:
            //    this.color = ColorNode.BLACK;
            //    this.GetComponent<Image>().color = Color.black;
            //    break;
        }
    }
    private void OnObjectAdded(Sector sector, IGameObject Object)
    {
        if(Object is IObject) {
            IObject iObject = (IObject) Object;
            Node node = iObject.GetSceneGraphNode();
            if(node != null)
                objectsNode.AddChild(node);
        }

        Layer layer = (Layer) SceneGraphRoot;

        if(Object is Tilemap) {
            Tilemap tilemap = (Tilemap) Object;
            Node tnode = new TilemapNode(tilemap, level.Tileset);
            ColorNode colorNode = new ColorNode(tnode, new Color(1f, 1f, 1f, 1f));
            layer.Add(tilemap.Layer, colorNode);
            colors[tilemap] = colorNode;
        }

        if (Object is IDrawableLayer) {
            IDrawableLayer IDrawableLayer = (IDrawableLayer) Object;

            Node mynode = IDrawableLayer.GetSceneGraphNode();
            if(mynode != null) {
                ColorNode colorNode = new ColorNode(mynode, new Color(1f, 1f, 1f, 1f));
                layer.Add(IDrawableLayer.Layer, colorNode);
                colors[IDrawableLayer] = colorNode;
            }
        }
    }
 public ColorNodeViewModel(ColorNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : 
         base(graphItemObject, diagramViewModel) {
 }
Beispiel #35
0
 public RotationNode()
 {
     Rotation = 0.0f;
     Color = new ColorNode();
     Directions = new List<DirectionNode>();
 }
 public ColorBox(int lower, int upper, int level, ColorNode[] imageColors)
 {
     this.lower = lower;
     this.upper = upper;
     this.level = level;
     this.imageColors = imageColors;
     this.trim();
 }
        void findRepresentativeColors(int K, ColorHistogram colorHist)
        {
            imageColors = new ColorNode[K];
            for (int i = 0; i < K; i++)
            {
                int rgb = colorHist.getColor(i);
                int cnt = colorHist.getCount(i);
                imageColors[i] = new ColorNode(rgb, cnt);
            }

            //if (K <= qnum_list[0]) // image has fewer colors than Kmax
            //    rCols = imageColors;
            //else
            {
                ColorBox initialBox = new ColorBox(0, K - 1, 0, imageColors);
                List<ColorBox> colorSet = new List<ColorBox>();
                colorSet.Add(initialBox);
                int k = 1;
                for (int i = 0; i < qnum_list.Count; i++)
                {
                    int Kmax = qnum_list[i];
                    bool done = false;
                    while (k < Kmax && !done)
                    {
                        ColorBox nextBox = findBoxToSplit(colorSet);
                        if (nextBox != null)
                        {
                            ColorBox newBox = nextBox.splitBox();
                            colorSet.Add(newBox);
                            k = k + 1;
                        }
                        else
                        {
                            done = true;
                        }
                    }
                    quantColors_list.Add(averageColors(colorSet,i));
                }
            }
            colorHist = null;
            GC.Collect();
        }
 private ColorNode[] averageColors(List<ColorBox> colorBoxes, int c)
 {
     int n = colorBoxes.Count();
     ColorNode[] avgColors = new ColorNode[n];
     for (int i = 0; i < colorBoxes.Count; i++)
     {
         ColorBox box = colorBoxes[i];
         avgColors[i] = box.getAverageColor(ini_color_table_list[c], i);
         //i = i + 1;
     }
     return avgColors;
 }
    private void OnObjectAdded(Sector sector, IGameObject Object)
    {
        if(Object is IObject) {
            IObject iObject = (IObject) Object;
            Node node = iObject.GetSceneGraphNode();
            if(node != null)
                objectsNode.AddChild(node);
        }

        Layer layer = (Layer) SceneGraphRoot;

        if(Object is Tilemap) {
            Tilemap tilemap = (Tilemap) Object;
            Node tnode = new TilemapNode(tilemap, level.Tileset);
            ColorNode colorNode = new ColorNode(tnode, new Color(1f, 1f, 1f, 1f));
            layer.Add(tilemap.ZPos, colorNode);
            System.Console.WriteLine("Adding tilemap color: {0}", Object.GetHashCode());
            colors[tilemap] = colorNode;
        }

        if (Object is Background) {
            Background background = (Background) Object;

            Node mynode = background.GetSceneGraphNode();
            if(mynode != null) {
                ColorNode colorNode = new ColorNode(mynode, new Color(1f, 1f, 1f, 1f));
                layer.Add(background.Layer, colorNode);
            }
        }
    }
Beispiel #40
0
    /**---------------------------------------------------------------------------------
    *   Generates a random world
    */
    public void Generate()
    {
        System.Random rand = new System.Random();

        for (int y = 0; y < depth; y++)
        {
            for (int x = 0; x < width; x++)
                mapcolor[y, x] = new ColorNode(255.0f, 255.0f, 255.0f, 255.0f);
        }

        int startX = 128;
        int startZ = 128;

        start = new Vector3(startX, 0, startZ);

        var startTile = findTile("start");

        int direction = rand.Next(0, 3);

        int angle = direction * 90;
        startDirection = new Vector3(0.0f, angle, 0.0f);

        var color = findColor(startTile, angle);
        mapcolor[startZ, startX] = color;

        List<TileDirectionNode> directions = new List<TileDirectionNode>();
        List<EndPosition> ends = new List<EndPosition>();

        RotationNode rotationNode = startTile.Rotations.Find(node => node.Rotation == angle);
        directions.Add(new TileDirectionNode(direction, startX, startZ, rotationNode.Directions[0].Connections));

        int i = 0;
        while (true)
        {
            if (directions.Count == 0 || i > 200)
                break;

            i++;

            var dir = directions[0];

            var connection = getRandomConnection(dir, rand);
            var tile = findTile(connection.TileName);
            var rotation = getRandomRotation(connection, rand);
            color = findColor(tile, rotation);
            var rN = tile.Rotations.Find(r => r.Rotation == rotation);

            switch (dir.Direction)
            {
                case 0:
                    dir.Y += 1;
                    break;
                case 1:
                    dir.X += 1;
                    break;
                case 2:
                    dir.Y -= 1;
                    break;
                case 3:
                    dir.X -= 1;
                    break;
            }

            if (mapcolor[dir.Y, dir.X].R == 255.0f && mapcolor[dir.Y, dir.X].G == 255.0f && mapcolor[dir.Y, dir.X].B == 255.0f && mapcolor[dir.Y, dir.X].A == 255.0f)
            {
                mapcolor[dir.Y, dir.X] = color;
                if (tile.TileName.ToLower() == "end".ToLower())
                    ends.Add(new EndPosition() { X = dir.X, Y = dir.Y, Rotation = rN.Rotation });
                foreach (var item in rN.Directions)
                    directions.Add(new TileDirectionNode(item.Direction, dir.X, dir.Y, item.Connections));
            }
            directions.Remove(dir);
        }

        foreach (var dir in directions)
        {
            var connection = dir.Connections.Find(t => t.TileName.ToLower() == "end");
            var tile = findTile(connection.TileName);
            var rotation = getRandomRotation(connection, rand);
            color = findColor(tile, rotation);
            var rN = tile.Rotations.Find(r => r.Rotation == rotation);

            switch (dir.Direction)
            {
                case 0:
                    dir.Y += 1;
                    break;
                case 1:
                    dir.X += 1;
                    break;
                case 2:
                    dir.Y -= 1;
                    break;
                case 3:
                    dir.X -= 1;
                    break;
            }

            if (mapcolor[dir.Y, dir.X].R == 255.0f && mapcolor[dir.Y, dir.X].G == 255.0f && mapcolor[dir.Y, dir.X].B == 255.0f && mapcolor[dir.Y, dir.X].A == 255.0f)
            {
                mapcolor[dir.Y, dir.X] = color;
                ends.Add(new EndPosition() { X = dir.X, Y = dir.Y, Rotation = rN.Rotation });
            }
        }

        var end = getRandomEnd(ends, rand);
        var finishTile = findTile("finish");
        color = findColor(finishTile, end.Rotation);
        mapcolor[end.Y, end.X] = color;
    }
    // Use this for initialization
    void Start()
    {
        mySprite = GetComponent<SpriteRenderer>();

        //setting up array to select your gun color
        colorMap[0, 0] = new ColorNode(ColorDefs.DefiniteColor.CO_BLUE);
        colorMap[0, 1] = new ColorNode(ColorDefs.DefiniteColor.CO_YELLOW);
        colorMap[0, 2] = new ColorNode(ColorDefs.DefiniteColor.CO_RED);
        colorMap[1, 0] = new ColorNode(ColorDefs.DefiniteColor.CO_ORANGE);
        colorMap[1, 1] = new ColorNode(ColorDefs.DefiniteColor.CO_PURPLE);
        colorMap[1, 2] = new ColorNode(ColorDefs.DefiniteColor.CO_GREEN);

        playerColor = colorMap[(int)mapLocation.x, (int)mapLocation.y].selectedColor;
        mySprite.color = Color.blue;

        redVal = maxColorVal;
        blueVal = maxColorVal;
        yellowVal = maxColorVal;
    }