Exemple #1
0
        public RecipeBookWindow(Vector2 pos, ItemInstance tool)
            : base(pos, "Recipe Book")
        {
            _usesWithFocus = Locator.Get <ContentManager>().GetUses(tool)
                             .GroupBy(use => use.Focus)
                             .Select(usesWithFocus => usesWithFocus.ToList())
                             .ToList();

            _rect.width = 150;

            var toolRenderable = new ItemRenderable(Vector2.zero, tool);

            AddChild(toolRenderable);

            if (_usesWithFocus.Count > NumToShow)
            {
                var prevButton = new Button(new Vector2(32, 0), "<")
                {
                    OnClick = PreviousSelection
                };
                var nextButton = new Button(new Vector2(100, 0), ">")
                {
                    OnClick = NextSelection
                };
                AddChild(prevButton);
                AddChild(nextButton);
            }

            _toolFocusGrid = new RenderableContainer(new Vector2(0, 32));
            AddChild(_toolFocusGrid);

            DisplayCurrentSelection();
        }
Exemple #2
0
        protected virtual void ViewItems(List <ItemInstance> items)
        {
            ItemRenderables = new List <ItemRenderable>();

            Slots.RemoveAllChildren();
            ShowSelected = false;
            for (var i = 0; i < items.Count; i++)
            {
                var itemRend  = new ItemRenderable(Vector2.zero, items[i]);
                var slotIndex = i;
                itemRend.OnRightClick = () =>
                {
                    Locator.Get <GridiaDriver>().OpenRecipeBook(itemRend.Item);
                };
                itemRend.OnMouseDown = () => MouseDownSlot = slotIndex;
                itemRend.OnClick     = () =>
                {
                    MouseUpSlot  = slotIndex;
                    SlotSelected = slotIndex;
                };
                itemRend.OnMouseOver   = () => MouseOverSlot = slotIndex;
                itemRend.OnDoubleClick = () =>
                {
                    EquipItemAt(slotIndex);
                };
                ItemRenderables.Add(itemRend);
                Slots.AddChild(itemRend);
            }

            SetWindowNameToCurrentSelection();
        }
        private void DisplayCurrentSelection()
        {
            if (_products != null)
            {
                _products.ForEach(RemoveChild);
                _products.Clear();
            }
            else
            {
                _products = new List <ItemRenderable>();
            }

            var cm  = Locator.Get <ContentManager>();
            var use = _uses[_currentSelection];

            use.Products.ForEach(product =>
            {
                var item = cm.GetItem(product).GetInstance();
                float x;
                if (_products.Count == 0)
                {
                    x = _nextButton != null
                        ? (_nextButton.Width + _nextButton.X + 60)
                        : (_equalsLabel.Width + _equalsLabel.X + 10);
                }
                else
                {
                    x = LastChildRight() + 5;
                }
                var renderable = new ItemRenderable(Vector2.zero, item);
                AddChild(renderable);
                renderable.X = x;
                _products.Add(renderable);
            });
        }
Exemple #4
0
        protected override void ViewItems(List <ItemInstance> items)
        {
            ItemRenderables = new List <ItemRenderable>();

            Slots.RemoveAllChildren();
            for (var i = 0; i < items.Count; i++)
            {
                var pos       = new Vector2(0, i * 32);
                var itemRend  = new ItemRenderable(pos, items[i]);
                var slotIndex = i;
                itemRend.OnDoubleClick = () =>
                {
                    Locator.Get <ConnectionToGridiaServerHandler>().UnequipItem(slotIndex);
                };
                ItemRenderables.Add(itemRend);
                Slots.AddChild(itemRend);
            }
        }
Exemple #5
0
        // :( delete
        public void DrawCreature(Rect rect, Creature creature, float scale)
        {
            // :(
            if (creature.IsOnRaft())
            {
                var cm   = Locator.Get <ContentManager>();
                var raft = new ItemRenderable(Vector2.zero, cm.GetItem(1211).GetInstance())
                {
                    Rect = rect
                };
                raft.Render();
            }

            var image = creature.Image;

            if (image is DefaultCreatureImage)
            {
                var defaultImage = (DefaultCreatureImage)image;
                var spriteId     = defaultImage.SpriteIndex;
                var textureX     = (spriteId % GridiaConstants.SpritesInSheet) % GridiaConstants.NumTilesInSpritesheetRow;
                var textureY     = 10 - (spriteId % GridiaConstants.SpritesInSheet) / GridiaConstants.NumTilesInSpritesheetRow - defaultImage.Height; // ?
                var texCoords    = new Rect(textureX / 10.0f, textureY / 10.0f, defaultImage.Width / 10.0f, defaultImage.Height / 10.0f);             // :( don't hardcode 10
                rect.width  *= defaultImage.Width;
                rect.height *= defaultImage.Height;
                rect.y      -= (defaultImage.Height - 1) * GridiaConstants.SpriteSize * scale;
                GUI.DrawTextureWithTexCoords(rect, Creatures.GetTextureForSprite(spriteId), texCoords);
            }
            else if (image is CustomPlayerImage)
            {
                var customImage = (CustomPlayerImage)image;
                DrawCreaturePart(rect, Heads, customImage.Head);
                DrawCreaturePart(rect, Chests, customImage.Chest);
                DrawCreaturePart(rect, Legs, customImage.Legs);
                DrawCreaturePart(rect, Arms, customImage.Arms);
                DrawCreaturePart(rect, Weapons, customImage.Weapon);
                DrawCreaturePart(rect, Shields, customImage.Shield);
            }
        }