Utilisation et contraintes

Expose un stockage fini qui sauvegarde ensemble ressources et métadonnées de récupération Nebula. Remplacer le bloc change son identité. Lectures et simulations ne modifient rien. Une capability simulant l’insertion ne garantit pas une transaction.

  1. DécouvrirLire capacités et recettes
  2. PlanifierRéserver les ressources exactes
  3. ExécuterTransférer au vrai propriétaire
  4. ReprendreLire le reçu sauvegardé
La découverte ne modifie rien. Seule l’exécution transfère la propriété ; la reprise ne recrée jamais une entrée consommée.

NebulaResourceStorage

NebulaResourceStorage
package dev.nebulastorage.api.platform

import dev.nebulastorage.api.resource.ResourceKey
import dev.nebulastorage.api.resource.ResourceStack
import dev.nebulastorage.api.resource.ResourceTypeId
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.level.block.entity.BlockEntity

fun interface NebulaResourceStorageAdapter {
    /** Read-only resolution on loaded chunks. A replacement owner or capability must expose a different identity. */
    fun resolve(level: ServerLevel, position: BlockPos, side: Direction): NebulaResourceStorage?
}

/**
 * A finite owner whose complete contents and Nebula transaction metadata share the same chunk NBT.
 * Contents are detached exact quantities. Simulation must not mutate. Transfers return the actual quantity of precisely the requested key.
 * Creative stores, redirection and independent persistence require a different recovery protocol and must not implement this contract.
 */
interface NebulaResourceStorage {
    val entity: BlockEntity
    val identity: Any
    val resourceType: ResourceTypeId
    fun capacity(): Long
    fun contents(): Map<ResourceKey, Long>
    fun insert(request: ResourceStack, simulate: Boolean): Long
    fun extract(request: ResourceStack, simulate: Boolean): Long
}
Source

src/main/kotlin/dev/nebulastorage/api/platform/NebulaResourceStorage.kt; editorial/fr.json

43b4d12d69e6033c24fa8c39dac383ef2429b446