Skip to content

🎁 Pickups — Integrations

This folder documents how the Pickups system integrates with other RevFramework systems.

Concrete implementations live in the RevFramework/Integrations hierarchy and are not part of the Pickups runtime assembly.


🎯 Purpose

Integrations extend pickup behaviour by connecting Pickups to other systems.

They are designed to:

  • keep Pickups runtime free of optional dependencies
  • provide system-specific behaviour through adapters
  • compile only when target systems are present

📦 Folder Overview

This folder exists as a documentation marker only.

It indicates that integration implementations are available elsewhere in the project.


🧩 What Lives Here

No runtime code is defined here.

Integration implementations are located under:

  • Integrations/Pickups/HealthIntegration
  • Integrations/Pickups/CurrencyIntegration
  • Integrations/Pickups/InventoryIntegration
  • Integrations/StatusEffects/PickupsIntegration

These modules are included only when the corresponding systems are present.


🧠 Usage Guidance

Integrations connect external systems to Pickups through supported extension seams.

Common seams include:

  • PickupEffect
  • PickupEffectDefinitionBase
  • IPickupDecoratorRegistry
  • IPickupEffectWithContext
  • IEffectAllowsNullDamageable

Integrations typically provide concrete effects or decorators that adapt other systems into these seams.


🧪 Diagnostics

Integration availability depends on compile-time defines such as:

  • REV_HEALTH_PRESENT
  • REV_INVENTORY_PRESENT

If a system is not present, its integration code is not compiled.


⚠️ Important Notes

  • integrations are optional
  • Pickups core does not depend on any external system
  • behaviour depends on which integration modules are included

🚫 Not for Production Use

This folder does not provide:

  • runtime behaviour
  • effect implementations
  • direct system integration code

It documents integration structure only.


  • Core
  • Effects
  • Definitions
  • Integrations (root)