86 lines
3.1 KiB
Go
86 lines
3.1 KiB
Go
package register
|
|
|
|
import (
|
|
"gitea.maximumdirect.net/eric/notarius/internal/core/source"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/modules/dnd"
|
|
)
|
|
|
|
func registerEvidence(registry *pipeline.ArtifactEvidenceRegistry) error {
|
|
return runRegistrations([]registration{
|
|
{name: "spells evidence", register: func() error { return pipeline.RegisterArtifactEvidence(registry, dnd.SpellListKind, spellEvidence) }},
|
|
{name: "npcs evidence", register: func() error { return pipeline.RegisterArtifactEvidence(registry, dnd.NPCListKind, npcEvidence) }},
|
|
{name: "combat turns evidence", register: func() error {
|
|
return pipeline.RegisterArtifactEvidence(registry, dnd.CombatTurnListKind, combatTurnEvidence)
|
|
}},
|
|
{name: "enemy events evidence", register: func() error {
|
|
return pipeline.RegisterArtifactEvidence(registry, dnd.EnemyEventListKind, enemyEventEvidence)
|
|
}},
|
|
{name: "item events evidence", register: func() error {
|
|
return pipeline.RegisterArtifactEvidence(registry, dnd.ItemEventListKind, itemEventEvidence)
|
|
}},
|
|
{name: "npc interactions evidence", register: func() error {
|
|
return pipeline.RegisterArtifactEvidence(registry, dnd.NPCInteractionListKind, npcInteractionEvidence)
|
|
}},
|
|
{name: "scene descriptions evidence", register: func() error {
|
|
return pipeline.RegisterArtifactEvidence(registry, dnd.SceneDescriptionListKind, sceneDescriptionEvidence)
|
|
}},
|
|
})
|
|
}
|
|
|
|
func spellEvidence(value dnd.SpellList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.SpellCasts {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func npcEvidence(value dnd.NPCList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.NPCs {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func combatTurnEvidence(value dnd.CombatTurnList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.CombatTurns {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func enemyEventEvidence(value dnd.EnemyEventList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.Events {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func itemEventEvidence(value dnd.ItemEventList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.Events {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func npcInteractionEvidence(value dnd.NPCInteractionList) []source.SourceRef {
|
|
var refs []source.SourceRef
|
|
for _, record := range value.Interactions {
|
|
refs = append(refs, record.SourceRefs...)
|
|
}
|
|
return append([]source.SourceRef(nil), refs...)
|
|
}
|
|
|
|
func sceneDescriptionEvidence(value dnd.SceneDescriptionList) []source.SourceRef {
|
|
refs := make([]source.SourceRef, 0, len(value.Scenes))
|
|
for _, record := range value.Scenes {
|
|
refs = append(refs, record.SourceRef)
|
|
}
|
|
return refs
|
|
}
|