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