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