Esempio n. 1
0
        private void InventoryOnSlotChanged(object sender, SlotChangedEventArgs e)
        {
            if (!e.IsServerTransaction)
            {
                return;
            }

            UpdateSlot(e.InventoryId, e.Index, e.Value);
        }
Esempio n. 2
0
        private void InventoryOnCursorChanged(object sender, SlotChangedEventArgs e)
        {
            if (!e.IsServerTransaction)
            {
                return;
            }

            SelectedItem = null;
            CursorItemRenderer.IsVisible = false;
        }
Esempio n. 3
0
        protected override void OnInventorySlotChanged(object sender, SlotChangedEventArgs e)
        {
            //Crafting!
            if (e.Index >= 41 && e.Index <= 44)
            {
                McpeInventoryTransaction transaction = McpeInventoryTransaction.CreateObject();
                transaction.transaction = new NormalTransaction()
                {
                    TransactionRecords = new List <TransactionRecord>()
                    {
                        new CraftTransactionRecord()
                        {
                            Action  = McpeInventoryTransaction.CraftingAction.CraftAddIngredient,
                            Slot    = e.Index,
                            NewItem = BedrockClient.GetMiNETItem(e.Value),
                            OldItem = BedrockClient.GetMiNETItem(e.OldItem)
                        }
                    }
                };
            }

            base.OnInventorySlotChanged(sender, e);
        }
Esempio n. 4
0
        protected override void OnInventorySlotChanged(object sender, SlotChangedEventArgs e)
        {
            //Crafting!

            /*    if (e.Index >= 41 && e.Index <= 44)
             *  {
             *          McpeInventoryTransaction transaction = McpeInventoryTransaction.CreateObject();
             *          transaction.transaction = new NormalTransaction()
             *          {
             *                  TransactionRecords = new List<TransactionRecord>()
             *                  {
             *                          new CraftTransactionRecord()
             *                          {
             *                                  Action = McpeInventoryTransaction.CraftingAction.CraftAddIngredient,
             *                                  Slot = e.Index,
             *                                  NewItem = BedrockClient.GetMiNETItem(e.Value),
             *                                  OldItem = BedrockClient.GetMiNETItem(e.OldItem)
             *                          }
             *                  }
             *          };
             *  }*/

            base.OnInventorySlotChanged(sender, e);
        }
Esempio n. 5
0
 protected virtual void OnInventorySlotChanged(object sender, SlotChangedEventArgs e)
 {
     CheckHeldItem();
 }
Esempio n. 6
0
        private void OnInventorySlotChanged(object sender, SlotChangedEventArgs e)
        {
            var inHand = Inventory.MainHand;

            Log.Info($"Inventory slot changed.");

            if (inHand == null && ItemRenderer != null)
            {
                ItemRenderer = null;
                return;
            }

            if (inHand != null)
            {
                if (!string.IsNullOrWhiteSpace(inHand.Name))
                {
                    /*var itemModel = Alex.Instance.Resources.ResourcePack.ItemModels.FirstOrDefault(x =>
                     *      x.Key.Contains(inHand.Name, StringComparison.InvariantCultureIgnoreCase));
                     *
                     * ItemRenderer = new ItemModelRenderer(itemModel.Value, Alex.Instance.Resources.ResourcePack);*/

                    var renderer = inHand.Renderer;
                    if (renderer == null)
                    {
                        Log.Warn($"No renderer for item: {inHand.Name}");
                        return;
                    }

                    var itemModel = renderer.Model;

                    ItemRenderer = renderer;

                    if (this is Player)
                    {
                        if (itemModel.Display.TryGetValue("thirdperson_righthand", out var value))
                        {
                            ItemRenderer.Rotation    = value.Rotation;
                            ItemRenderer.Translation = value.Translation;
                            ItemRenderer.Scale       = value.Scale;

                            if (ModelRenderer.GetBone("rightItem", out EntityModelRenderer.ModelBone bone))
                            {
                                Log.Info($"First Person item model rendering ready.");

                                bone.Attach(ItemRenderer);
                            }
                            else
                            {
                                Log.Warn($"Bone not found: rightItem");
                            }
                        }
                        else
                        {
                            Log.Warn($"Failed to get item model display element!");
                        }
                    }
                    else
                    {
                        if (itemModel.Display.TryGetValue("thirdperson_righthand", out var value))
                        {
                            ItemRenderer.Rotation    = value.Rotation;
                            ItemRenderer.Translation = value.Translation;
                            ItemRenderer.Scale       = value.Scale;

                            if (ModelRenderer.GetBone("rightItem", out EntityModelRenderer.ModelBone bone))
                            {
                                Log.Info($"Third Person item model rendering ready.");

                                bone.Attach(ItemRenderer);
                            }
                        }
                        else
                        {
                            Log.Warn($"Failed to get item model display element!");
                        }
                    }
                }
            }
        }
Esempio n. 7
0
 private void InventoryOnSlotChanged(object sender, SlotChangedEventArgs e)
 {
     UpdateSlot(e.InventoryId, e.Index, e.Value);
 }