Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- This program can only detect if nodes increase in vis! Any reduction of an aspect will not be counted!
- --]]
- --Peripherals
- monitor = peripheral.wrap("left")
- node = peripheral.wrap("right")
- --Sets monitor scale factor. Only values by increments of .5 allowed.
- --Currently set for a 3x3 monitor setup
- monitor.setTextScale(1.0)
- --Sets monitor to mirror computer
- term.redirect(s)
- local asp = {
- aer = "aer",
- aqua = "aqua",
- ignis = "ignis",
- ordo = "ordo",
- perditio = "perditio",
- terra = "terra"
- }
- --Tier 1
- asp.gelum = {asp.ignis, asp.perditio}
- asp.lux = {asp.aer, asp.ignis}
- asp.motus = {asp.aer, asp.ordo}
- asp.permutatio = {asp.ordo, asp.perditio}
- asp.potentia = {asp.ignis, asp.ordo}
- asp.tempestas = {asp.aer, asp.aqua}
- asp.vacuos = {asp.aer, asp.perditio}
- asp.venenum = {asp.aqua, asp.perditio}
- asp.victus = {asp.aqua, asp.terra}
- asp.vitreus = {asp.ordo, asp.terra}
- --Tier 2
- asp.bestia = {asp.motus, asp.victus}
- asp.fames = {asp.vacuos, asp.victus}
- asp.herba = {asp.terra, asp.motus}
- asp.iter = {asp.terra, asp.motus}
- asp.limus = {asp.aqua, asp.victus}
- asp.metallum = {asp.terra, asp.vitreus}
- asp.mortuus = {asp.perditio, asp.victus}
- asp.praecantatio = {asp.potentia, asp.vacuos}
- asp.sano = {asp.ordo, asp.victus}
- asp.tenebrae = {asp.lux, asp.vacuos}
- asp.vinculum = {asp.perditio, asp.mortuus}
- asp.volatus = {asp.aer, asp.motus}
- --Tier 3
- asp.alienis = {asp.vacuos, asp.tenebrae}
- asp.arbor = {asp.aer, asp.herba}
- asp.auram = {asp.aer, asp.praecantatio}
- asp.corpus = {asp.bestia, asp.mortuus}
- asp.exanimis = {asp.mortuus, asp.motus}
- asp.spiritus = {asp.victus, asp.mortuus}
- asp.vitium = {asp.perditio, asp.praecantatio}
- --Tier 4
- asp.cognitio = {asp.ignis, asp.spiritus}
- asp.sensus = {asp.aer, asp.spiritus}
- --Tier 5
- asp.humanus = {asp.bestia, asp.cognitio}
- --Tier 6
- asp.instrumentum = {asp.ordo, asp.humanus}
- asp.lucrum = {asp.fames, asp.humanus}
- asp.messis = {asp.herba, asp.humanus}
- asp.perfodio = {asp.terra, asp.humanus}
- --Tier 7
- asp.fabrico = {asp.humanus, asp.instrumentum}
- asp.machina = {asp.motus, asp.instrumentum}
- asp.meto = {asp.instrumentum, asp.messis}
- asp.pannus = {asp.bestia, asp.instrumentum}
- asp.telum = {asp.ignis, asp.instrumentum}
- asp.tutamen = {asp.terra, asp.instrumentum}
- --Forbidden Magic
- asp.infernus = {asp.ignis, asp.praecantatio}
- asp.luxuria = {asp.fames, asp.corpus}
- asp.gula = {asp.vacuos, asp.fames}
- asp.desidia = {asp.vinculum, asp.spiritus}
- asp.ira = {asp.ignis, asp.telum}
- asp.invidia = {asp.fames, asp.sensus}
- asp.superbia = {asp.vacuos, asp.volatus}
- --Magic Bees
- asp.tempus = {asp.ordo, asp.vacuos}
- --Aspect Variables
- local primals = {
- ignis = 0,
- aqua = 0,
- aer = 0,
- terra = 0,
- ordo = 0,
- perditio = 0
- }
- --Resets monitor
- function monReset()
- monitor.clear()
- monitor.setCursorPos(1,1)
- end
- --Math
- function convert(amount)
- return math.floor(math.sqrt(amount))
- end
- --Find all primal aspects of an aspect
- function primalFind (aspect, components)
- local components = components or {}
- --Allows for testing Primal and Tier 1 Aspects
- if type(asp[aspect]) == "table" then
- aspect = asp[aspect]
- end
- if type(aspect) == "table" then
- --Recursive
- for _,v in ipairs(aspect) do
- primalFind(v, components)
- end
- else
- --Test for duplicates
- local notDuplicate = true
- for _,v in ipairs(components) do
- if v == aspect then
- notDuplicate = false
- end
- end
- if notDuplicate then
- table.insert(components, aspect)
- end
- end
- return components
- end
- while true do
- monReset()
- print("Current Centivis Output\n")
- for _,v0 in ipairs(node.getAspects()) do
- for _,v1 in ipairs(primalFind(v0)) do
- if primals[v1] < convert(node.getAspectCount(v0)) then
- primals[v1] = convert(node.getAspectCount(v0))
- end
- end
- end
- for k,v in pairs(primals) do
- print(k..": "..v.."\n")
- end
- sleep(60)
- end
Add Comment
Please, Sign In to add comment