Пример #1
0
        public void RecalculateAttributes(IItemStack stack)
        {
            ModularItemHelper.RecalculateAttributes(stack, api.World);

            ItemStack headstack = GetToolheadStack(stack);

            int tooltier = 0;

            if (headstack != null)
            {
                headstack.ResolveBlockOrItem(api.World);
                ToolPart part = (ToolPart)headstack.Item;

                if (part != null)
                {
                    tooltier = part.TinkerProps.ToolTier;
                }
            }

            if (tooltier != 0)
            {
                stack.Attributes.SetInt("tooltier", tooltier);
            }
            else
            {
                stack.Attributes.RemoveAttribute("tooltier");
            }
        }
Пример #2
0
        public override float GetMiningSpeed(IItemStack itemstack, Block block, IPlayer forPlayer)
        {
            ItemStack partstack = ModularItemHelper.GetToolheadStack(itemstack);
            ToolPart  part      = null;

            if (partstack != null)
            {
                partstack.ResolveBlockOrItem(api.World);
                part = (ToolPart)partstack.Item;
            }

            if (part != null)
            {
                return(part.GetMiningSpeed(itemstack, block, forPlayer));
            }

            return(base.GetMiningSpeed(itemstack, block, forPlayer));
        }
Пример #3
0
        private static string BuildMeshId(ClientMain game, ItemStack stack)
        {
            string       result = stack.Item.Code.ToString().Replace(':', '.');
            IModularItem item   = stack.Item as IModularItem;

            if (item != null)
            {
                var slots = ModularItemHelper.GetSlots(stack, game);

                foreach (var slot in slots)
                {
                    if (slot.Value != null)
                    {
                        result = result + "." + BuildMeshId(game, slot.Value);
                    }
                }
            }
            return(result);
        }
Пример #4
0
 public bool HasNeededParts(ItemStack stack)
 {
     return(ModularItemHelper.HasNeededParts(stack));
 }
Пример #5
0
 public int GetToolTier(IItemStack stack)
 {
     return(ModularItemHelper.GetToolTier(stack));
 }
Пример #6
0
 public ItemStack GetToolheadStack(IItemStack stack)
 {
     return(ModularItemHelper.GetToolheadStack(stack));
 }
Пример #7
0
 public Dictionary <string, ItemStack> GetSlots(IItemStack stack)
 {
     return(ModularItemHelper.GetSlots(stack, api.World));
 }
Пример #8
0
 public SlotDefinition[] GetSlotDefinitions()
 {
     return(ModularItemHelper.GetSlotDefinitions(this));
 }
Пример #9
0
 public bool AddPart(IItemStack stack, string slotName, ItemStack partstack)
 {
     return(ModularItemHelper.AddPart(stack, slotName, partstack));
 }
Пример #10
0
 public override void DamageItem(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, int amount = 1)
 {
     ModularItemHelper.DamageTool(world, byEntity, itemslot, amount);
 }
Пример #11
0
        public override void OnLoaded(ICoreAPI api)
        {
            base.OnLoaded(api);

            ModularItemHelper.OnLoaded(api, this);
        }
Пример #12
0
 public ItemStack RemovePart(IItemStack stack, string slot)
 {
     return(ModularItemHelper.RemovePart(stack, slot));
 }
Пример #13
0
 public virtual void RecalculateAttributes(IItemStack stack)
 {
     ModularItemHelper.RecalculateAttributes(stack, api.World);
 }
Пример #14
0
 public ItemStack RemovePart(IItemStack parent, string slot)
 {
     return(ModularItemHelper.RemovePart(parent, slot));
 }
Пример #15
0
 public override int GetDurability(IItemStack itemstack)
 {
     return(ModularItemHelper.GetDurability(itemstack));
 }