Skip to content

🔗 Pickups Integrations

This folder contains optional integration bridges for the Pickups system.

These integrations allow Pickups to interact with other RevFramework systems without introducing hard dependencies.

These integrations are built and supported for RevFramework systems only. They are not intended as a general integration layer for third-party solutions.


🧠 What This Folder Is

Each subfolder represents a specific system integration, for example:

  • CurrencyIntegration/ → currency adjustments via pickups
  • HealthIntegration/ → healing, regen, and health-based gating
  • InventoryIntegration/ → item grants via inventory services

👉 These are extensions, not part of the core Pickups runtime.


🔧 How Integrations Work

All integrations follow the same principles:

✔ Soft Dependencies

  • No direct assembly references from Pickups to other systems
  • Resolution is done via:

  • reflection

  • relays
  • optional integration entrypoints

👉 This keeps Pickups fully modular and removable.


✔ Explicit Opt-In

  • Integrations do not activate automatically
  • You must:

  • include the integration folder

  • use the provided definitions/effects
  • or call integration-specific factory entrypoints

👉 Nothing is injected or globally overridden.


✔ Best-Effort Resolution

Integrations attempt to resolve compatible services at runtime.

If resolution fails:

  • The effect safely no-ops
  • An Editor warning may be logged
  • No runtime exceptions are thrown

⚠️ Important

These are optional

  • Pickups works without any integrations
  • You only need these if you want cross-system behaviour

No lock-in

  • You are not required to use these integrations
  • You can:

  • replace them

  • extend them
  • or build your own

👉 These are examples of how to integrate RevFramework systems, not required dependencies.


Behaviour depends on target systems

Each integration assumes certain contracts exist, for example:

  • Currency → (string id, int amount) methods
  • Inventory → GiveExact(GameObject, ItemStack, string)
  • Health → IHealthWriter, IHealthReadonly

If those contracts are not present, the integration will not apply.


🌍 Third-Party / Custom System Use

These integrations are built for RevFramework systems only.

If you are integrating Pickups with non-RevFramework systems:

  • Treat these integrations as reference examples
  • Implement your own bridge or adapter
  • Use the public APIs of each system

👉 Custom or third-party integrations are not supported by this layer.


🧪 Intended Usage

Use these integrations when you want to:

  • Connect Pickups to other RevFramework systems
  • Prototype cross-system behaviour quickly
  • Understand how systems interact without coupling

👉 Then adapt or replace them for your own project.


🧹 Safe to Remove

This entire folder is optional.

Removing it will:

  • Not affect the Pickups runtime system
  • Only remove cross-system behaviour

🧠 Summary

This folder answers:

“How do I connect Pickups to other RevFramework systems without coupling them together?”

It provides:

  • Optional integration bridges
  • Soft-linked system interaction
  • Clear extension patterns

Use them as reference implementations — not as required dependencies.