001package com.fs.starfarer.api.impl.codex;
002
003import java.util.LinkedHashSet;
004
005import com.fs.starfarer.api.EveryFrameScript;
006import com.fs.starfarer.api.Global;
007
008public class CodexIntelAdder implements EveryFrameScript {
009
010        public static String KEY = "$core_codexIntelAdder";
011        
012        public static CodexIntelAdder get() {
013                CodexIntelAdder adder = (CodexIntelAdder) Global.getSector().getMemoryWithoutUpdate().get(KEY);
014                if (adder == null) {
015                        adder = new CodexIntelAdder();
016                }
017                return adder;
018        }
019        
020        protected float delay = 0f;
021        protected LinkedHashSet<String> unlockedEntries = new LinkedHashSet<>();
022        
023        public CodexIntelAdder() {
024                Global.getSector().getMemoryWithoutUpdate().set(KEY, this);
025                Global.getSector().addScript(this);
026        }
027        
028        
029        public void addEntry(String entryId) {
030                CodexEntryPlugin entry = CodexDataV2.getEntry(entryId);
031                if (entry == null || entry.isLocked()) return;
032                unlockedEntries.add(entryId);
033                delay = 1f;
034        }
035        
036        @Override
037        public void advance(float amount) {
038                delay -= amount;
039                if (delay <= 0) {
040                        delay = 0f;
041                        if (!unlockedEntries.isEmpty()) {
042                                if (!CodexDataV2.codexFullyUnlocked()) {
043                                        new CodexUpdateIntel(unlockedEntries);
044                                }
045                                unlockedEntries = new LinkedHashSet<>();
046                        }
047                }
048        }       
049        
050        @Override
051        public boolean isDone() {
052                return false;
053        }
054
055        @Override
056        public boolean runWhilePaused() {
057                return false;
058        }
059
060}
061
062
063
064
065
066
067
068