| Back to Index | Page generated: Nov 24, 2025, 1:21:31 AM |
| from Expansion Manager's OXP list | from Expansion Manifest | |
|---|---|---|
| Description | ||
| Identifier | oolite.oxp.spara.ImperialAstrofactory | oolite.oxp.spara.ImperialAstrofactory |
| Title | Imperial Astrofactory | Imperial Astrofactory |
| Category | Dockables | Dockables |
| Author | spara, phkb, gsagostinho | spara, phkb, gsagostinho |
| Version | 2.5.1 | 2.5.1 |
| Tags | ||
| Required Oolite Version | ||
| Maximum Oolite Version | ||
| Required Expansions | ||
| Optional Expansions | ||
| Conflict Expansions | ||
| Information URL | https://wiki.alioth.net/index.php/Imperial_AstroFactory | n/a |
| Download URL | https://wiki.alioth.net/img_auth.php/a/ad/AstroFactory_2.5.oxz | n/a |
| License | CC-BY-SA 3.0 | CC-BY-SA 3.0 |
| File Size | n/a | |
| Upload date | 1716769823 |
Also read http://wiki.alioth.net/index.php/Imperial%20Astrofactory
Imperial Astrofactory OXP ver 2.5 (17-10-2017) Author: spara (Mika Spåra) _Description_ This oxp Griffifies the Astrofactory station from Dictators oxp by Ramirez. Also adds the missing AstroFarm station. It works as a standalone station or if Dictators oxp is installed substitutes the old astrostation. _Credits_ Original model and textures by Ramirez. Dome texture, other normalmaps and emissions by spara. _Install_ Install the OXP by copying Imperial_AstroFactory.oxp to your AddOns-folder. ------ This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ Solar panel: https://www.freepik.com/free-psd/solar-power-boards-3d-realistic-render_27548594.htm Image by godesign3d on Freepik Rock texture 1: https://www.freepik.com/free-photo/stone-texture-background_1120405.htm Image by kues1 on Freepik Rock texture 2: https://www.freepik.com/free-photo/stone-texture_1033837.htm Image by kues1 on Freepik 2.5.1 - Small tweaks to shipdata and shipdata-overrides files. 2.5 - Switched to using the default Oolite shaders. Raised minimum Oolite version to 1.90. - Added specular maps to all models. - Updated asteroid texture. - Added missing AstroFarm. - Independent populator now allows for saving the game at AstroFactories and AstroFarms. - Independent populator now positions AstroFactories in the same location as Dictators. - Moved "Imperial Lictor" from Dictators to this OXP. - Split the Lictor into two roles, one for "Imperial" dictatorships and one for "Revolutionary" dictatorships. 2.4 - Corrected more errors in shipdata.plist. 2.3 - Corrected errors in shipdata.plist. - Changed category to "Dockables" rather than "Ships". 2.2 update by gsagostinho - new textures, including new asteroid normal map - uses new logo, matching the new textures of Dictators version 2.1 - added Astrofactory to the Ship Library 2.1 update by phkb - Updated shipdata.plist to use newer subentity definitions. - Added manifest.plist file - Packaged as OXZ
| Path | |
|---|---|
| Config/script.js | "use strict";
this.name = "dfl_imperial_astrofactory";
this.author = "Spara";
this.copyright = "2013 Mika Spåra";
this.license = "CC BY-NC-SA 3.0";
this.description = "Add astrofactory and astrofarm to dictatorship systems";
//-------------------------------------------------------------------------------------------------------------
this.startUp = function() {
if (worldScripts["dictators.js"]) {
delete this.systemWillPopulate;
}
if (worldScripts.StationDockControl) {
var sdc = worldScripts.StationDockControl;
sdc._shipFits["Revolutionary AstroFarm|Serpent Class Cruiser"] = 0;
sdc._shipFits["Revolutionary AstroFarm|Hornet"] = 0;
sdc._shipFits["Revolutionary AstroFarm|Anaconda"] = 0;
sdc._shipFits["Revolutionary AstroFarm|Boa Class Cruiser"] = 0;
sdc._shipFits["Revolutionary AstroFarm|Boa"] = 0;
sdc._shipFits["Revolutionary AstroFarm|Cobra Mark IV"] = 0;
sdc._trafficLow.push("astrofarm");
}
}
//-------------------------------------------------------------------------------------------------------------
this.systemWillPopulate = function() {
if (system.government != 3) return;
var sv = worldScripts.station_validator;
if (system.economy < 3 && system.countShipsWithRole("astrofactory") === 0) {
if (sv && (sv.$deaths("dfl_astrofactory").length !== 0 || sv.$deaths("dfl_astrofactory2").length !== 0)) return;
var posAF = Vector3D((system.scrambledPseudoRandomNumber(1245) * 0.30 - 0.15), (system.scrambledPseudoRandomNumber(3827) * 0.30 - 0.15), 0.3).fromCoordinateSystem("wpu");
system.setPopulator("dictators_astrofactory", {
location: "COORDINATES",
coordinates: posAF,
deterministic:true,
callback: function(pos) {
var rck = system.addShips("asteroid", 30, pos, 40E3);
var key = "dfl_astrofactory";
if (system.techLevel >= 10) key = "dfl_astrofactory2";
var af = system.addShips("[" + key + "]", 1, pos, 0);
if (!af || af.length === 0) log("astrofactory.populator", "OOPS! No astrofactory spawned");
}}
);
}
if (system.economy > 4 && system.countShipsWithRole("astrofarm") === 0) {
if (sv && (sv.$deaths("dfl_astrofarm").length !== 0 && sv.$deaths("dfl_astrofarm2").length !== 0)) return;
var posAFM = Vector3D((system.scrambledPseudoRandomNumber(2271) * 0.30 - 0.15), (system.scrambledPseudoRandomNumber(772) * 0.30 - 0.15), 0.3).fromCoordinateSystem("spu");
system.setPopulator("dictators_astrofarm", {
location: "COORDINATES",
coordinates: posAFM,
deterministic:true,
callback: function(pos) {
var key = "dfl_astrofarm";
if (system.techLevel >= 6) key = "dfl_astrofarm2";
var af = system.addShips("[" + key + "]", 1, pos, 0);
if (!af || af.length === 0)
log("astrofarm.populator", "OOPS! No astrofarm spawned");
else
worldScripts.dfl_imperial_astrofactory.turnStationToEntity(af[0], system.sun, -1.5, 0, 1); // get solar panel to face sun
}}
);
}
}
//-------------------------------------------------------------------------------------------------------------
this.turnStationToEntity = function (station, entity, x, y, z) {
var targetVector = entity.position.subtract(station.position).direction();
station.orientation = targetVector.rotationTo([(!x ? 0 : x), (!y ? 0 : y), (!z ? 1 : z)]);
} |
| Scripts/dfl_conditions.js | "use strict";
this.name = "AstroFactory_Conditions";
this.author = "phkb";
this.copyright = "2024 phkb";
this.description = "Condition script for ships and equipment.";
this.licence = "CC BY-NC-SA 3.0";
//-------------------------------------------------------------------------------------------------------------
this.allowSpawnShip = function(shipKey) {
if (system.government !== 3) return false;
switch (shipKey) {
case "dfl_astrofactory":
case "dfl_astrofactory2":
case "imp_lictor":
if (system.economy < 3) return true;
break;
case "dfl_astrofarm":
case "dfl_astrofarm2":
case "rev_lictor":
if (system.economy > 4) return true;
break;
case "imp_police_lictor":
if (worldScripts["dictators.js"] && worldScripts["dictators.js"]._settings.policeShipReplace == false) return false;
if (system.economy < 3) return true;
break;
case "rev_police_lictor":
if (worldScripts["dictators.js"] && worldScripts["dictators.js"]._settings.policeShipReplace == false) return false;
if (system.economy > 4) return true;
break;
}
return false;
}
|