public static void Add(ItemPickupComponent C) { if (Components.Contains(C)) { return; } Components.Add(C); }
//--------------------------------------------------------------------------- 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); }