001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.InteractionDialogAPI; 008import com.fs.starfarer.api.campaign.PlanetAPI; 009import com.fs.starfarer.api.campaign.SectorEntityToken; 010import com.fs.starfarer.api.campaign.rules.MemoryAPI; 011import com.fs.starfarer.api.loading.Description; 012import com.fs.starfarer.api.loading.Description.Type; 013import com.fs.starfarer.api.util.Misc.Token; 014 015public class PrintDescription extends BaseCommandPlugin { 016 017 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 018 SectorEntityToken target = dialog.getInteractionTarget(); 019 020 int index = Integer.parseInt(params.get(0).string); 021 022 Description desc = Global.getSettings().getDescription(target.getCustomDescriptionId(), Type.CUSTOM); 023 if ((desc == null || 024 (!desc.hasText1() && !desc.hasText2() && !desc.hasText3() && !desc.hasText4() && !desc.hasText5())) && 025 target instanceof PlanetAPI) { 026 PlanetAPI planet = (PlanetAPI) target; 027 String id = planet.getDescriptionIdOverride(); 028 if (id == null) id = planet.getTypeId(); 029 desc = Global.getSettings().getDescription(id, Type.PLANET); 030 } 031 032 if (desc != null) { 033 if (index == 1 && desc.hasText1()) { 034 dialog.getTextPanel().addParagraph(desc.getText1()); 035 } else if (index == 2 && desc.hasText2()) { 036 dialog.getTextPanel().addParagraph(desc.getText2()); 037 } else if (index == 3 && desc.hasText3()) { 038 dialog.getTextPanel().addParagraph(desc.getText3()); 039 } 040 } 041 return true; 042 } 043} 044 045 046 047 048 049 050