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

It documents integration structure only

This folder does not provide:

  • runtime behaviour
  • effect implementations
  • direct system integration code

  • Core
  • Effects
  • Definitions
  • Integrations (root)