Compose D&D location tracking modules

This commit is contained in:
2026-08-04 00:39:00 +00:00
parent a168c13b85
commit 811d5b8bd9
8 changed files with 282 additions and 9 deletions

View File

@@ -25,6 +25,12 @@ func registerEvidence(registry *pipeline.ArtifactEvidenceRegistry) error {
{name: "scene descriptions evidence", register: func() error {
return pipeline.RegisterArtifactEvidence(registry, dnd.SceneDescriptionListKind, sceneDescriptionEvidence)
}},
{name: "locations evidence", register: func() error {
return pipeline.RegisterArtifactEvidence(registry, dnd.LocationListKind, locationEvidence)
}},
{name: "location occurrences evidence", register: func() error {
return pipeline.RegisterArtifactEvidence(registry, dnd.LocationOccurrenceListKind, locationOccurrenceEvidence)
}},
})
}
@@ -83,3 +89,19 @@ func sceneDescriptionEvidence(value dnd.SceneDescriptionList) []source.SourceRef
}
return refs
}
func locationEvidence(value dnd.LocationList) []source.SourceRef {
var refs []source.SourceRef
for _, location := range value.Locations {
refs = append(refs, location.SourceRefs...)
}
return append([]source.SourceRef(nil), refs...)
}
func locationOccurrenceEvidence(value dnd.LocationOccurrenceList) []source.SourceRef {
var refs []source.SourceRef
for _, occurrence := range value.Occurrences {
refs = append(refs, occurrence.SourceRefs...)
}
return append([]source.SourceRef(nil), refs...)
}