Back to Index Page generated: Jun 13, 2026, 7:54:48 PM

Expansion VimanaHUD

Content

Warnings

  1. Required Expansions mismatch between OXP Manifest and Expansion Manager at character position 0060 (DIGIT ZERO vs LATIN SMALL LETTER N)
  2. No version in dependency reference to oolite.oxp.Norby.CombatMFD:null
  3. No version in dependency reference to oolite.oxp.Gnievmir.VimanaShipOverrides:null
  4. Optional Expansions mismatch between OXP Manifest and Expansion Manager at character position 0073 (DIGIT ZERO vs LATIN SMALL LETTER N)
  5. Conflict Expansions mismatch between OXP Manifest and Expansion Manager at character position 0067 (DIGIT ZERO vs LATIN SMALL LETTER N)

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description The Vimana HUD is the newest in spaceship cockpits, with all functions and features gathered in a slick futuristic design. It changes IFF scanner color based on conditions (Deepspace/Mass-Locked/Alert). New crosshairs compatible with AutoCrosHair. WARNING: The ship overrides that increased cargo space were moved to VimanaShipOverrides OXP (listed in Ships category) - install that OXP before loading a savefile of a core game ship or cargo may be lost! The Vimana HUD is the newest in spaceship cockpits, with all functions and features gathered in a slick futuristic design. It changes IFF scanner color based on conditions (Deepspace/Mass-Locked/Alert). New crosshairs compatible with AutoCrosHair. WARNING: The ship overrides that increased cargo space were moved to VimanaShipOverrides OXP (listed in Ships category) - install that OXP before loading a savefile of a core game ship or cargo may be lost!
Identifier oolite.oxp.Gnievmir.VimanaHUD oolite.oxp.Gnievmir.VimanaHUD
Title VimanaHUD VimanaHUD
Category HUDs HUDs
Author Gnievmir Gnievmir
Version 2.07 2.07
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
  • oolite.oxp.Norby.CombatMFD:0
  • oolite.oxp.Norby.CombatMFD:
  • Optional Expansions
  • oolite.oxp.Gnievmir.VimanaShipOverrides:0
  • oolite.oxp.Norby.HUDSelector:1.18
  • oolite.oxp.Thargoid.RepairBots:2.14
  • oolite.oxp.CommonSenseOTB.ShieldEqualizer+Capacitors:1.3
  • oolite.oxp.Lone_Wolf.ShieldCyclerNext:2.1
  • oolite.oxp.CommonSenseOTB.SniperLock:1.0
  • oolite.oxp.EricWalch.MissileAnalyser:1.2
  • oolite.oxp.hoqllnq.missile-beep:1.3
  • oolite.oxp.phkb.LMSS:2.1
  • oolite.oxp.Thargoid.IronHide:2.00
  • oolite.oxp.Wildeblood.AutoCrosshairs:1.1.1
  • oolite.oxp.Gnievmir.VimanaShipOverrides:
  • oolite.oxp.Norby.HUDSelector:1.18
  • oolite.oxp.Thargoid.RepairBots:2.14
  • oolite.oxp.CommonSenseOTB.ShieldEqualizer+Capacitors:1.3
  • oolite.oxp.Lone_Wolf.ShieldCyclerNext:2.1
  • oolite.oxp.CommonSenseOTB.SniperLock:1.0
  • oolite.oxp.EricWalch.MissileAnalyser:1.2
  • oolite.oxp.hoqllnq.missile-beep:1.3
  • oolite.oxp.phkb.LMSS:2.1
  • oolite.oxp.Thargoid.IronHide:2.00
  • oolite.oxp.Wildeblood.AutoCrosshairs:1.1.1
  • Conflict Expansions
  • oolite.oxp.Lone_Wolf.ShieldCycler:0
  • oolite.oxp.Lone_Wolf.ShieldCyclerNext:0
  • oolite.oxp.Wildeblood.alerting_crosshairs:0
  • oolite.oxp.Wildeblood.LaserificCrosshairs:0
  • oolite.oxp.Wildeblood.ShieldtasticCrosshairs:0
  • oolite.oxp.AndreyBelov.Targeter:0
  • oolite.oxp.Wildeblood.ActiveCrosshairs:0
  • oolite.oxp.Lone_Wolf.ShieldCycler:
  • oolite.oxp.Lone_Wolf.ShieldCyclerNext:
  • oolite.oxp.Wildeblood.alerting_crosshairs:
  • oolite.oxp.Wildeblood.LaserificCrosshairs:
  • oolite.oxp.Wildeblood.ShieldtasticCrosshairs:
  • oolite.oxp.AndreyBelov.Targeter:
  • oolite.oxp.Wildeblood.ActiveCrosshairs:
  • Dependent Expansions
  • oolite.oxp.Gnievmir.VimanaShipOverrides:2.07
  • Information URL https://wiki.alioth.net/index.php/Vimana_HUD n/a
    Download URL https://wiki.alioth.net/img_auth.php/0/0e/VimanaHUD-2.07.oxz n/a
    License CC BY-SA 4.0 CC BY-SA 4.0
    File Size n/a
    Upload date 1778111567

    Relationships Diagram

    Documentation

    Also read http://wiki.alioth.net/index.php/VimanaHUD

    Readme.txt

    VimanaHUD OXP
    -------------
    v2.07, by Gnievmir
    
    Vimana HUD is a full featured Heads Up Display, overlaying a complex dashboard over the external optical feed shown in your viewscreen.
    
    It has analogic/digital gauges for Speed, Fuel, Altitude, Cargo, Cabin Temperature, Forward and Aft Shield Strength, Energy, Armour and Laser Temperature; icons describing existence and readiness of Fuel Injectors, Fuel Scoops, Energy Unit (EEU or NEU), ECM, LMSS, Repair System, Shield Capacitors and Shield Equalizer or Shield Cycler. 
    
    It describes the primed equipment and the next primeable equipment in the cycle, the weapon mounted in the current view direction, and the available capacity for Anti-Missile System darts and Repair System charges.
    
    There are custom crosshairs for each alert condition, and visual alerts, warnign and critical levels, for energy, cabin temperature, shield strength, and altitude.
    
    There are two versions of the in-flight HUD, one with 6 MFDs and other with 12 MFDs, though the lower 2 MFD slots in the 12-slots version should only be used on widescreen monitors. There is a docked HUD that shows information on the screen borders, leaving the centre free for the station interfaces.
    
    The expansion modules, available on Ship Outfitting (F3) screen, show information that usually would be shown on MFDs.
    
    Equipments
    ----------
    
    - Travel Module, available at TL 6 for 1,000 ₢
    
    Shows multiple witchspace destinations, with distance/fuel consumption, travel time and number of jumps.
    
    
    - Ship Module, available at TL 6 for 1,500 ₢
    
    Shows damage status of ship's equipment.
    
    
    - Target Module, available at TL 6 for 2,500 ₢
    
    Displays information on current target.
    
    
    - TFSystem, available at TL 7 for 3,100 ₢
    
    Target Filtering System, allows selection of targets by class: hostile/outlaw, police, thargoid, neutral, cargo, asteroids, etc.
    
    
    - Vimana Beam Laserm available at TL 9 for 15,000 ₢
    
    A low heat beam laser with low energy footprint, range of 25km. Alternative to Military Laser.
    
    
    License
    -------
    
    Creative Commons Attribution Non-Comercial Share-Alike 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/)
    
    Version History
    ---------------
    v2.07 (by Dybal)
    
    * Fixes display of Repair System status.
    
    v2.06 (by Dybal)
    
    * Moves overriding of ship characteristics to VimanaShipOverrides OXP.
    * Fixes Repair System worldScript name.
    * Makes HUD compatible with HUD Selector.
    * Updates compatibility with Repair Bots 2.14, Shield Equalizer and Capacitors v1.6+, SniperLock Plus.
    * Changes Repair Bots, Shield Equalizer and Capacitos, SniperLock, Missile Analyser, Missile Beep, LMSS, Iron Hide and Auto Crosshairs from required to optional.
    * Makes it compatible with Shield Cycler Next v2.0+.
    * Adds a 12-MFDs version.
    * Makes it incompatible with Active Crosshairs OXP (it overrides the HUD's crosshairs).
    * Adds central dot to crosshairs.
    * Sets crosshairs before launch.
    * Adds docked version of the HUD, displaying info on the screen borders and leaving the screen centre free for Station Interfaces.
    * Keeps the Compass target when an ident or missile target is acquired.
    * Uses beacon label, if defined, for Compass target display
    * Doesn't display shield low warning in Torus Drive (for HardWay OXP users).
    
    v2.05
    
    * Initial version published by Gnievmir on http://aegidian.org/bb/viewtopic.php?p=268089
    
    

    Equipment

    Name Visible Cost [deci-credits] Tech-Level
    TFSys yes 31000 7+
    Sell TFSys yes 420 11+
    Ship Mod yes 15000 6+
    Target Mod yes 25000 6+
    Travel Mod yes 10000 6+
    Vimana Beam yes 150000 9+

    Ships

    This expansion declares no ships. This may be related to warnings.

    Models

    This expansion declares no models. This may be related to warnings.

    Scripts

    Path
    Scripts/TFS-equip.js
    'use strict';
    
    this.author  = 'Andrey Belov';
    this.licence = 'CC-BY-NC-SA 3.0';
    
    this.TFS = worldScripts['Target Filtering System'];
    
    // Handle event "mode" for prime equipment
    this.mode = function() {
        if ( player.ship.equipmentStatus('EQ_TARGET_FILTERING_SYSTEM') !== 'EQUIPMENT_OK' ) return;
        if ( ++this.TFS._mode > 5 ) this.TFS._mode = 0;
        this._showMsg( 'timer.tfs@mode', 'TFS mode: ' + ['hostile/outlaw','thargon','police','neutral','cargo','asteroids'][this.TFS._mode] );
    };
    
    this._showMsg = function(key, msg) {
        player.consoleMessage(msg, 1);
    };
    
    //Handle event "activated" for prime equipment
    this.activated = function() {
        if ( player.ship.equipmentStatus('EQ_TARGET_FILTERING_SYSTEM') === 'EQUIPMENT_OK' ) {
            this._setNextTarget();
        }
    };
    
    this._setNextTarget = function() {
        var targets = [];
    
        if ( 0 === this.TFS._mode ) {
            targets = this._getHostileShips();
    
            if ( targets.length < 1 ) {
                targets = this._getOutlawShips();
            }
        }
        else if ( 1 === this.TFS._mode ) {
            targets = this._getThargoids();
        }
        else if ( 2 === this.TFS._mode ) {
            targets = this._getPolice();
        }
        else if ( 3 === this.TFS._mode ) {
            targets = this._getNeutralShips();
        }
        else if ( 4 === this.TFS._mode ) {
            targets = this._getCargoPods();
        }
        else if ( 5 === this.TFS._mode ) {
            targets = this._getAsteroids();
        }
    
        var len = targets.length - 1;
    
        if ( len < 0 ) {
            return;
        }
    
        this._sortByDistance(targets);
    
        var ptn = 0;
        if ( player.ship.target ) {
            ptn = TFS._getPreviousTargetNum();
            ptn = ptn >= len ? 0 : ptn + 1;
            TFS._setPreviousTargetNum(ptn);
        }
        var nextTarget = targets[ptn];
    
        if ( player.ship.target && player.ship.target === nextTarget ) {
            return;
        }
    
        player.ship.target = nextTarget;
    };
    
    this._getHostileShips = function() {
        if ( ! player.alertHostiles ) {
            return [];
        }
        return this._filterEntities(
            function(e) { return ( e.isShip && e.hasHostileTarget && e.target === player.ship ); }
        );
    };
    
    this._getOutlawShips = function() {
        if ( 1 > player.alertCondition ) {
            return [];
        }
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_NEUTRAL' && e.bounty !== 0 ); }
        );
    };
    
    this._getNeutralShips = function() {
        if ( 1 > player.alertCondition ) {
            return [];
        }
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_NEUTRAL' && e.bounty === 0 ); }
        );
    };
    
    this._getCargoPods = function() {
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_CARGO' ); }
        );
    };
    
    this._getThargoids = function() {
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_THARGOID' ); }
        );
    };
    
    this._getPolice = function() {
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_POLICE' ); }
        );
    };
    
    this._getAsteroids = function() {
        return this._filterEntities(
            function(e) { return ( e.scanClass === 'CLASS_ROCK' ); }
        );
    };
    
    this._filterEntities = function(filterFunc) {
        return system.filteredEntities(
            this,
            filterFunc,
            player.ship,
            player.ship.scannerRange
        );
    };
    
    this._sortByDistance = function(targets) {
        var cache = {};
        // sort
        targets.sort( function sortByDist(a,b) {
            // cache distance
            //var ai=a.ID,bi=b.ID; // work only with my patch with universalID getter :(
            var
            ai = a.entityPersonality,
            bi = b.entityPersonality; // use some "uniq" ident
            cache[ai] = cache[ai] || a.position.distanceTo(player.ship.position);
            cache[bi] = cache[bi] || b.position.distanceTo(player.ship.position);
            return ((cache[ai]<cache[bi])?-1:((cache[ai]>cache[bi])?1:0));
        } );
    };
    
    Scripts/TFS.js
    notYetParsed
    Scripts/VimanaAlerts.js
    notYetParsed
    Scripts/VimanaHUD.js
    notYetParsed