001package com.fs.starfarer.api.impl.codex;
002
003import java.util.LinkedHashSet;
004import java.util.Set;
005
006import java.awt.Color;
007
008import com.fs.starfarer.api.Global;
009import com.fs.starfarer.api.impl.campaign.intel.misc.FleetLogIntel;
010import com.fs.starfarer.api.ui.SectorMapAPI;
011import com.fs.starfarer.api.ui.TooltipMakerAPI;
012import com.fs.starfarer.api.util.Misc;
013
014public class CodexUpdateIntel extends FleetLogIntel {
015
016        protected LinkedHashSet<String> unlockedEntries;
017
018        public CodexUpdateIntel(LinkedHashSet<String> unlockedEntries) {
019                this.unlockedEntries = unlockedEntries;
020                Global.getSector().getIntelManager().addIntel(this);
021        }
022
023        protected void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode, boolean isUpdate, Color tc, float initPad) {
024                Color h = Misc.getHighlightColor();
025                Color g = Misc.getGrayColor();
026                float pad = 3f;
027                float opad = 10f;
028                
029                bullet(info);
030                
031                if (!unlockedEntries.isEmpty()) {
032                        String entries = unlockedEntries.size() == 1 ? "entry" : "entries";
033                        info.addPara("%s new Codex " + entries + "", initPad, tc, h, "" + unlockedEntries.size());
034                        initPad = 0f;
035                }
036                unindent(info);
037        }
038
039        @Override
040        public void createSmallDescription(TooltipMakerAPI info, float width, float height) {
041                Color h = Misc.getHighlightColor();
042                Color g = Misc.getGrayColor();
043                Color tc = Misc.getTextColor();
044                float pad = 3f;
045                float small = 3f;
046                float opad = 10f;
047
048                if (!unlockedEntries.isEmpty()) {
049                        info.addPara("New Codex entries available.", opad);
050                        info.addCodexEntries("New entries", unlockedEntries, true, opad);
051                        float ew = info.getPrev().getPosition().getWidth();
052                        float xOff = (int)((width - ew)/2f);
053                        info.getPrev().getPosition().setXAlignOffset(xOff);
054                        info.addSpacer(0f).getPosition().setXAlignOffset(-xOff);
055                }
056                
057                addLogTimestamp(info, tc, opad);
058                
059                addDeleteButton(info, width);
060        }
061
062        @Override
063        public String getIcon() {
064                return Global.getSettings().getSpriteName("intel", "codex_update");
065        }
066
067        @Override
068        public Set<String> getIntelTags(SectorMapAPI map) {
069                Set<String> tags = super.getIntelTags(map);
070                return tags;
071        }
072
073        public String getName() {
074                return "Codex Update";
075        }
076
077}