public static void Add(ItemPickupComponent C)
        {
            if (Components.Contains(C))
            {
                return;
            }

            Components.Add(C);
        }
Ejemplo n.º 2
0
        //---------------------------------------------------------------------------

        public static Pickup Create(EItemType itemType, Vector3 location, Vector3 force)
        {
            Pickup pickup = Create(itemType.ToString(), location, force);

            Sprite sprite = ItemManager.Get().Find(itemType).Sprite;

            pickup.AddComponent <SpriteComponent>().Init(sprite, Vector2.Zero, Vector2.One * 2);
            pickup.AddComponent <ShadowComponent>().Init(sprite, Vector2.One * 2, new Vector2(0, 3));
            pickup.AddComponent <LightingComponent>().Init(sprite, Vector2.Zero, Vector2.One * 2, Color.White, 0.5f);

            ParticleSpawnerComponent particleSpawner = pickup.AddComponent <ParticleSpawnerComponent>();
            Color        color = ItemManager.Get().GetColorByType(itemType);
            ParticleDesc desc  = ParticleDesc.Stars;

            desc.ParticleColor      = (time) => color;
            desc.LightColor         = (time) => color;
            particleSpawner.Emitter = new CircleParticleEmitter(0, 30, desc)
            {
                Sprite    = CollisionManager.Get().PointTexture,
                Light     = CollisionManager.Get().PointTexture,
                SpawnRate = (time) => 20
            };
            pickup.AddComponent <LightingComponent>().Init(AssetManager.Get().Find <Texture2D>(ELightAssets.CircleLight), Vector2.Zero, Vector2.One * 0.5f, Color.White, 0.8f);

            ItemPickupComponent pickupComponent = pickup.AddComponent <ItemPickupComponent>();

            if (pickupComponent != null)
            {
                pickupComponent.Type = itemType;
                pickup.GetComponent <CircleColliderComponent>().Enter += (source, target) =>
                {
                    pickupComponent.OnPickup(target);
                };
            }

            return(pickup);
        }
 public static void Remove(ItemPickupComponent C)
 {
     Components.Remove(C);
 }