Back to Index | Page generated: Dec 20, 2024, 7:22:09 AM |
from Expansion Manager's OXP list | from Expansion Manifest | |
---|---|---|
Description | A piece of equipment which highlights scoopable items in a virtual glow on your visual display. | A piece of equipment which highlights scoopable items in a virtual glow on your visual display. |
Identifier | oolite.oxp.Thargoid.CargoSpotter | oolite.oxp.Thargoid.CargoSpotter |
Title | Cargo Spotter | Cargo Spotter |
Category | Equipment | Equipment |
Author | Thargoid | Thargoid |
Version | 1.1 | 1.1 |
Tags | equipment | equipment |
Required Oolite Version | ||
Maximum Oolite Version | ||
Required Expansions | ||
Optional Expansions | ||
Conflict Expansions | ||
Information URL | http://wiki.alioth.net/index.php/Cargo_Spotter_OXP | n/a |
Download URL | https://wiki.alioth.net/img_auth.php/8/88/CargoSpotter-1.1.oxz | n/a |
License | Creative Commons Attribution - Non-Commercial - Share Alike 3.0 | Creative Commons Attribution - Non-Commercial - Share Alike 3.0 |
File Size | n/a | |
Upload date | 1610873354 |
Also read http://wiki.alioth.net/index.php/Cargo%20Spotter
Cargo Spotter OXP ----------------- by Thargoid A little OXP, which adds a new piece of equipment for any scavenger, miner or bounty hunter. As small scoopable items like cargo pods, splinters and escape pods can often be difficult to see, this addition to the ships HUD overlays them with a virtual flashing glow. Thus they are easier to spot from a distance and home in on. The update costs 300 credits, and should be available in systems of tech level 12 or higher. This OXP uses Cim's new visual effects class. Thus it requires Oolite version 1.77 or above to work. License ------- This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license. Version history --------------- v1.00 (08/01/2013) * First release v1.01 (26/02/2013) * Minor script tweak to add missing $ (thanks to UK_Eliter for the notification). v1.1 (Oct/2020) * Changes equipment from primeable to always active (to reduce the chain of primeable equipments). * Updates license to remove the "Thargoid clauses" after Thargoid allowed modification when retired from maintaining his OXps (http://aegidian.org/bb/viewtopic.php?f=4&t=17085)
Name | Visible | Cost [deci-credits] | Tech-Level |
---|---|---|---|
Cargo Spotter | yes | 3000 | 12+ |
Path | |
---|---|
Scripts/cargoSpotter_glow.js | "use strict"; this.name = "cargoSpotter_glow.js"; this.author = "Thargoid"; this.copyright = "CC BY-NC-SA 3.0"; this.description = "Glow script."; this.version = "1.1"; //------------------------------------------------------------------------------------// this.effectSpawned = function _cspotter_effectSpawned() { if (!this.visualEffect) return; this.callbackID = addFrameCallback(this.$positionGlow.bind(this)); } //------------------------------------------------------------------------------------// this.effectRemoved = function _cspotter_effectRemoved() { if(this.callbackID) removeFrameCallback(this.callbackID); delete this.callbackID; } //------------------------------------------------------------------------------------// this.$positionGlow = function _cspotter_positionGlow() { if (missionVariables.cargoSpotter !== "ACTIVE" || !this.visualEffect || !this.visualEffect.isValid || !this.visualEffect.hasOwnProperty("$cargoSpotter_cargoEntity") || !this.visualEffect.$cargoSpotter_cargoEntity.isInSpace || !player.ship || !player.ship.isValid || this.visualEffect.position.distanceTo(player.ship.position) > 25600) { delete this.visualEffect.$cargoSpotter_cargoEntity.$cargoSpotter_tagged; this.visualEffect.remove(); return; } this.visualEffect.position = this.visualEffect.$cargoSpotter_cargoEntity.position; } |
Scripts/cargoSpotter_worldScript.js | "use strict"; this.name = "cargoSpotter_worldScript.js"; this.author = "Thargoid"; this.copyright = "CC BY-NC-SA 3.0"; this.description = "Script for Cargo Spotter"; this.version = "1.1"; // // Event Handlers // //-----------------------------------------------------------------------------------// this.startUp = this.shipLaunchedFromStation = this.shipExitedWitchspace = function _cspotter_start() { if (player.ship.equipmentStatus("EQ_CARGOSPOTTER") === "EQUIPMENT_OK") { missionVariables.cargoSpotter = "ACTIVE"; this.$startTimer(); } else missionVariables.cargoSpotter = "INACTIVE"; } //-----------------------------------------------------------------------------------// this.shipDied = this.shipDockedWithStation = this.shipWillEnterWitchspace = this.$stopTimer = function _cspotter_stopTimer() { missionVariables.cargoSpotter = "INACTIVE"; if (this.scanTimer && this.scanTimer.isRunning) { this.scanTimer.stop(); delete this.scanTimer; } } //-----------------------------------------------------------------------------------// this.equipmentDamaged = function _cspotter_equipmentDamaged(equipment) { if(equipment === "EQ_CARGOSPOTTER") { missionVariables.cargoSpotter = "INACTIVE"; this.$stopTimer(); } } // // Internal functions // //-----------------------------------------------------------------------------------// this.$startTimer = function _cspotter_startTimer() { if (!this.scanTimer) this.scanTimer = new Timer(this, this.$findCargo, 0, 1) else this.scanTimer.start(); } //-----------------------------------------------------------------------------------// this.$findCargo = function _cspotter_findCargo() { // cargo pods, alloys, boulders/splinters && uncontrolled thargons function _cspotter_targetCargo(entity) { return ( entity.isShip && (entity.isCargo || entity.isBoulder || (entity.hasRole("thargon") && entity.AI === "dumbAI.plist") ) && entity.isInSpace && !entity.hasOwnProperty("$cargoSpotter_tagged")); } var cargoArray = system.filteredEntities(this, _cspotter_targetCargo, player.ship, 25600); if (cargoArray.length === 0) return; var i = cargoArray.length; var c; while (i--) { c = cargoArray[i]; c.$cargoSpotter_tagged = true; this.glowKey = "cargoSpotter_blueGlow"; // default highlight glow for cargopods & alloys if (c.hasRole("thargon")) this.glowKey = "cargoSpotter_greenGlow"; // highlight inactive thargons in green if (c.isBoulder || c.hasRole("splinter")) this.glowKey = "cargoSpotter_grayGlow"; // highlight rocks in grey if (c.hasRole("escape-capsule")) this.glowKey = "cargoSpotter_redGlow"; // highlight escape pods in red this.glow = system.addVisualEffect(this.glowKey, c.position); this.glow.$cargoSpotter_cargoEntity = c; } } |