I'm working on expanding my pickup system, which currently just gives one type of resource (currency). I am wondering what is the best way (design and/or performance) to implement support for different types of pickups.
- The simplest way would be to add an enum of type and add to the component whatever other information is needed (eg number for currency/health, entity for weapon/armour), and have a big switch in the system that handles what to give the player
- A base component for the pickup (handling the physics of being picked up), then another component for what the player gets, with a system for each type (HealthPickupSystem/CurrencyPickupSystem/ArmourPickupSystem/etc) that looks for a tag to say the pickup needs to be redeemed
From what I've heard the idea of multiple systems doesn't scale the best but it would be very easy to extend, so I'm on the fence...