001package com.fs.starfarer.api; 002 003import com.fs.starfarer.api.campaign.BattleAPI; 004import com.fs.starfarer.api.campaign.CampaignFleetAPI; 005import com.fs.starfarer.api.campaign.CampaignProgressIndicatorAPI; 006import com.fs.starfarer.api.campaign.CargoAPI; 007import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType; 008import com.fs.starfarer.api.campaign.CargoStackAPI; 009import com.fs.starfarer.api.campaign.FactionAPI; 010import com.fs.starfarer.api.campaign.FleetStubAPI; 011import com.fs.starfarer.api.campaign.JumpPointAPI; 012import com.fs.starfarer.api.campaign.OrbitAPI; 013import com.fs.starfarer.api.campaign.SectorEntityToken; 014import com.fs.starfarer.api.campaign.ai.CampaignFleetAIAPI; 015import com.fs.starfarer.api.campaign.comm.CommMessageAPI; 016import com.fs.starfarer.api.campaign.econ.MarketAPI; 017import com.fs.starfarer.api.campaign.rules.MemoryAPI; 018import com.fs.starfarer.api.characters.OfficerDataAPI; 019import com.fs.starfarer.api.characters.PersonAPI; 020import com.fs.starfarer.api.combat.ShipVariantAPI; 021import com.fs.starfarer.api.fleet.CrewCompositionAPI; 022import com.fs.starfarer.api.fleet.FleetMemberAPI; 023import com.fs.starfarer.api.fleet.FleetMemberType; 024 025/** 026 * Provides methods for creating various entities, such as fleets, markets, orbits, cargo, and more. 027 * 028 * @author Alex Mosolov 029 * 030 * Copyright 2012 Fractal Softworks, LLC 031 */ 032public interface FactoryAPI { 033 FleetMemberAPI createFleetMember(FleetMemberType type, String variantOrWingId); 034 CargoAPI createCargo(boolean unlimitedStacks); 035 CrewCompositionAPI createCrewComposition(); 036 037 JumpPointAPI createJumpPoint(String id, String name); 038 OrbitAPI createCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays); 039 CampaignProgressIndicatorAPI createProgressIndicator(String text, SectorEntityToken target, float durationDays); 040 041 MemoryAPI createMemory(); 042 MarketAPI createMarket(String id, String name, int size); 043 //MarketAPI createConditionMarket(String id, String name, int size); 044 045 046// /** 047// * Convert a stub "market conditions only" market used for uninhabited planets into 048// * a full-featured market used by the economy. Used when, for example, establishing an outpost 049// * on a planet. 050// * @param market 051// * @return 052// */ 053// MarketAPI convertToRegularMarket(MarketAPI market); 054 055 CampaignFleetAPI createEmptyFleet(String factionId, String name, boolean aiMode); 056 057 PersonAPI createPerson(); 058 059 OfficerDataAPI createOfficerData(PersonAPI person); 060 BattleAPI createBattle(CampaignFleetAPI one, CampaignFleetAPI two); 061 CargoStackAPI createCargoStack(CargoItemType type, Object data, CargoAPI cargo); 062 CommMessageAPI createMessage(); 063 FleetStubAPI createStub(); 064 OrbitAPI createCircularOrbitWithSpin(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays, float spin); 065 FleetMemberAPI createFleetMember(FleetMemberType type, ShipVariantAPI variant); 066 CampaignFleetAIAPI createFleetAI(CampaignFleetAPI fleet); 067 OrbitAPI createCircularOrbitPointingDown(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays); 068 //CargoStackAPI createCargoStack(CargoItemType type, Object data, Object data2, CargoAPI cargo); 069 CampaignFleetAPI createEmptyFleet(FactionAPI faction, boolean aiMode); 070 void setCurrentlyOpenMarket(MarketAPI currentlyOpenMarket); 071}