Ejemplo n.º 1
0
        public override void AddComponents()
        {
            base.AddComponents();

            Width = 12;

            AddComponent(new FollowerComponent {
                MaxDistance = 96,
                FollowSpeed = 2
            });

            AddComponent(new AnimationComponent("backpack")
            {
                ShadowOffset = -2
            });

            AddComponent(new ShadowComponent(RenderShadow));
            AddComponent(new RectBodyComponent(0, 0, Width, Height, BodyType.Dynamic, true));
            AddComponent(new ItemComponent());

            AddComponent(new InteractableComponent(Interact)
            {
                CanInteract = e => e == Owner && (e.GetComponent <ActiveWeaponComponent>().Item != null || GetComponent <ItemComponent>().Item != null),
                OnStart     = e => AddFx()
            });

            try {
                var id = GameSave.GetString("backpack");

                if (id != null)
                {
                    var item = Items.CreateAndAdd(id, Area);
                    GetComponent <ItemComponent>().Set(item, false);
                    item.GetComponent <OwnerComponent>().Owner = Owner;
                    itemRegion = item.Region;
                }
            } catch (Exception e) {
                Log.Error(e);
            }

            GetComponent <AnimationComponent>().Animate();
        }