001package com.fs.starfarer.api.impl.campaign;
002
003import com.fs.starfarer.api.campaign.CampaignFleetAPI;
004import com.fs.starfarer.api.campaign.FleetStubAPI;
005import com.fs.starfarer.api.campaign.FleetStubConverterPlugin;
006
007public class FleetStubConverterPluginImpl implements FleetStubConverterPlugin {
008
009        public CampaignFleetAPI convertToFleet(FleetStubAPI stub) {
010//              if (stub == null || !(stub.getParams() instanceof FleetParams)) {
011//                      throw new RuntimeException("Trying to convert invalid fleet stub with FleetStubConverterPluginImpl");
012//              }
013//              
014//              FleetParams params = (FleetParams) stub.getParams();
015//              CampaignFleetAPI fleet = FleetFactoryV2.createFleet(params);
016//              
017//              MemoryAPI memory = fleet.getMemoryWithoutUpdate();
018//              fleet.setMemory(stub.getMemoryWithoutUpdate());
019//              
020//              String sourceMarket = memory.getString(MemFlags.MEMORY_KEY_SOURCE_MARKET);
021//              if (sourceMarket != null) {
022//                      fleet.getMemoryWithoutUpdate().set(MemFlags.MEMORY_KEY_SOURCE_MARKET, sourceMarket);
023//              }
024//              
025//              fleet.setId(stub.getId());
026//              
027//              
028//              for (FleetAssignmentDataAPI curr : stub.getAssignmentsCopy()) {
029//                      fleet.addAssignment(curr.getAssignment(), curr.getTarget(), curr.getMaxDurationInDays(),
030//                                                              curr.getActionText(), curr.getOnCompletion());
031//              }
032//              
033//              if (stub.getContainingLocation() != null) {
034//                      stub.getContainingLocation().addEntity(fleet);
035//                      stub.getContainingLocation().removeFleetStub(stub);
036//              }
037//              
038//              fleet.setLocation(stub.getLocation().x, stub.getLocation().y);
039//              
040//              
041//              if (stub.getScripts() != null) {
042//                      for (EveryFrameScript script : stub.getScripts()) {
043//                              fleet.addScript(script);
044//                      }
045//                      //stub.getScripts().clear();
046//              }
047//              
048//              if (stub.getEventListeners() != null) {
049//                      for (FleetEventListener listener : stub.getEventListeners()) {
050//                              fleet.addEventListener(listener);
051//                      }
052//                      stub.getEventListeners().clear();
053//              }
054//              
055//              stub.setFleet(fleet);
056//              stub.setMemory(null);
057//              stub.clearAssignments();
058//              
059//              fleet.setStub(stub);
060//              
061//              return fleet;
062                return null;
063        }
064
065        
066        public FleetStubAPI convertToStub(CampaignFleetAPI fleet) {
067//              MemoryAPI memory = fleet.getMemoryWithoutUpdate();
068//              memory.advance(10000f); // flush out anything temporary
069//              
070//              FleetStubAPI stub = fleet.getStub();
071//              stub.setMemory(memory);
072//              stub.setFleet(null);
073//              
074//              stub.clearAssignments();
075//              for (FleetAssignmentDataAPI curr : fleet.getAssignmentsCopy()) {
076//                      stub.addAssignment(curr.getAssignment(), curr.getTarget(), curr.getMaxDurationInDays(),
077//                                                              curr.getActionText(), curr.getOnCompletion());
078//              }
079//              
080////            if (fleet.getScripts() != null) {
081////                    if (stub.getScripts() != null) {
082////                            stub.getScripts().clear();
083////                    }
084////                    for (EveryFrameScript script : fleet.getScripts()) {
085////                            stub.addScript(script);
086////                    }
087////            }
088//              
089//              if (fleet.getEventListeners() != null) {
090//                      if (stub.getEventListeners() != null) {
091//                              stub.getEventListeners().clear();
092//                      }
093//                      for (FleetEventListener listener : fleet.getEventListeners()) {
094//                              stub.addEventListener(listener);
095//                      }
096//              }
097//              
098//              if (fleet.getContainingLocation() != null) {
099//                      fleet.getContainingLocation().removeEntity(fleet);
100//                      fleet.getContainingLocation().addFleetStub(stub);
101//                      stub.setContainingLocation(fleet.getContainingLocation());
102//              }
103//              
104//              stub.getLocation().set(fleet.getLocation().x, fleet.getLocation().y);
105                
106                
107                return null;
108        }
109
110        
111        public boolean shouldConvertFromStub(FleetStubAPI stub) {
112                return true;
113                //return Misc.shouldConvertFromStub(stub);
114        }
115        
116        public boolean shouldConvertToStub(CampaignFleetAPI fleet) {
117                return false;
118                //return Misc.shouldConvertToStub(fleet);
119        }
120}
121
122
123
124
125
126
127
128
129
130
131