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}