Coder Social home page Coder Social logo

edcd / eddi Goto Github PK

View Code? Open in Web Editor NEW
436.0 35.0 81.0 41.71 MB

Companion application for Elite Dangerous

License: Other

C# 99.83% Inno Setup 0.11% Batchfile 0.04% Smalltalk 0.02%
voiceattack-plugin text-to-speech elite-dangerous eddn edsm frontier-api elite voiceattack

eddi's Introduction

Crowdin

Branch Status
stable stable
beta beta
develop develop

EDDI: The Elite Dangerous Data Interface

EDDI is a companion application for Elite: Dangerous, providing responses to events that occur in-game using data from the game as well as various third-party tools.

EDDI reads data from a variety of sources to provide players with additional information whilst in-game, and also with events that can trigger such things as spoken responses or VoiceAttack actions. The basic flow of EDDI is shown below:

Monitors are pieces of code that check for information, for example a new Galnet article being published or an entry to Elite's journal. Monitors pass information on the event to EDDI.

EDDI takes events and carries out operations based on them. For example, if the event says that the player has changed system then EDDI will fetch updated system information from EDDB. Once it has gathered all of the required information it will notify each responder of the event.

Responders take the events, along with any information that has been gathered by EDDI, and carry out actions. For example the EDSM responder sends details of any jumps that the player makes to EDSM so that they have a permanent record of their flight logs, the speech responder provides a spoken response to events, the VoiceAttack responder provides variables to VoiceAttack scripts and runs specific scripts when events occur, etc.

Monitors and responders can be configured from the EDDI UI, and can be individually enabled or disabled as required.

Installing and Configuring EDDI

EDDI can be installed standalone or as a VoiceAttack plugin.

Download the EDDI installer from https://github.com/EDCD/EDDI/releases. By default it will install in C:\Program Files (x86)\VoiceAttack\Apps\EDDI, which is fine regardless of if you have VoiceAttack or not, but of course you can change it if you wish (although note that if the installation is not in a subdirectory of your VoiceAttack's Apps directory then it will not be able to be used as a VoiceAttack plugin).

Alternatively you can compile EDDI from the sources at https://github.com/EDCD/EDDI. See development dependencies.

When you start EDDI it will bring up a window with a number of tabs. Each tab explains its function and how to configure it, so you will be best served to read each tab and set it up according to your liking.

Using EDDI with VoiceAttack

Initial EDDI integration with VoiceAttack is automatic, but there is a lot that you can do to integrate EDDI with your own VoiceAttack scripts. Full details of what you can do with EDDI and VoiceAttack are on the VoiceAttack EDDI page.

Upgrading EDDI

If you are upgrading from EDDI 1 EDDI it is recommended that you uninstall your existing version of EDDI and remove your %APPDATA%\EDDI directory prior to upgrading to the new one. This ensures that there is a clean installation and reduces the chances of problems occurring.

If you are upgrading from another version of EDDI 2 the installer will take care of changes so you just need to run it.

EDDI Voices

EDDI uses the standard Windows TTS (text-to-speech) voices. The voice needs to be visible to Windows' TTS system to be made available to EDDI: this usually takes place when you install the voice. If you cannot see a voice in EDDI then check the Windows TTS settings.

If you want to have a high-quality voice other than that available with Windows then the best choices are to purchase voices from either Ivona or Cereproc. Though both provide great voices, Ivona voices typically adhere more closely to published SSML standards and provide fuller functionality for phonetic speech and other advanced features like pauses in the middle of speech and correct pronunciation of names (ships, powers, systems, etc.).

Troubleshooting

If you are experiencing problems with EDDI then your first port of call should be the troubleshooting page. If this does not fix your problem then please check the Known issues below:

If you have an issue with EDDI then please report it.

Uninstalling EDDI

If you want to uninstall EDDI then you can do so through the Windows control panel. Any data that EDDI creates is stored in the %APPDATA%\EDDI directory, and this can also be removed on uninstall.

Thanks

We would like to express our gratitude to the various products, services, and APIs which make EDDI's development possible, including:

https://elitedangerous.com/ https://www.edsm.net/ https://www.inara.cz/ https://www.voiceattack.com https://www.microsoft.com https://www.jetbrains.com/?from=EDDI https://www.rollbar.com

Note: Logos and trademarks in this section are not the property of the EDDI development team. These are sourced from publicly available press kits or otherwise used with permission.

eddi's People

Contributors

boyestrous avatar bullzye54 avatar cmdrmcdonald avatar corysia avatar danielricardo avatar dark avatar giovax avatar handfeger avatar hoodathunk avatar intelfx avatar javelias avatar jpacelli62 avatar juggernaut93 avatar lagoth avatar mcdee avatar memphykitay avatar mwerle avatar randydarsh avatar richardbuckle avatar rodan123 avatar sk93 avatar slippycheeze avatar stivlwrith avatar tkael avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eddi's Issues

'Nav beacon scan' event

No filter is present to prevent all scan events from being processed & spoken

@Genar_Hofoen (Captain's Log) recommended an approach (using python code to show how Captain's log handles these):

@VerticalBlank (EDRefCard) CL2's JournalParser is a QtObject, so I emit a Signal() when encountering an event handled by the parser. Here's the bit of code for navbeaconscan...

    # navbeaconscanevent = False  # Flag to enable or disable scan event notification for GUI.
    # navbeaconscancount = 0  # No. of navbeacon scan events parsed.
    # numbodies = 0  # No. of navbeacon scan events expected.
    def parse_navbeacon_scan(self, line):
        if 'NumBodies' in line:
            self.numbodies = line['NumBodies']
            self.navbeaconscancount = 0
            if self.numbodies > 0:
                self.navbeaconscanevent = True
                self.navBeaconScanStart.emit(self.numbodies)

@VerticalBlank (EDRefCard) Then in my parse_star and parse_planet_scan() functions, I'll look to see if self.navbeaconscan is True, and if so, handle the events differently from a normal, interactive scan event.
@VerticalBlank (EDRefCard) partial bit of code at the end of parse_star_scan() ...

        if self.navbeaconscanevent:
            self.navbeaconscancount += 1
            self.navBeaconScanBodiesLeft.emit(self.navbeaconscancount)
            if self.navbeaconscancount == self.numbodies:
                self.navbeaconscanevent = False
                self.numbodies = 0
                self.navBeaconScanEnd.emit()
            else:
                return
        self.starScanCompleted.emit(line['BodyName'])

EDDI Core: Add support for localization / translations to non-English languages

Suggestion from Syrrianyl:
For the MissionAcceptedEvent, EDDI take actualy the comodity with
Commodity commodity = CommodityDefinitions.FromName(getString(data, "Commodity"))
, is it not better to use the Commodity_Localised with
string commodity = getString(data, "Commodity_Localised");
and now we have also a LocalisedName for the name of the event, so is it better to replace
'string name = getString(data, "Name");'
by
'string name = getString(data, "LocalisedName ");'
or it is better to add a new like this
string localisedname = getString(data, "LocalisedName"); and rework all the MissionAcceptedEvent by adding a value like:
MissionAcceptedEvent(timestamp, missionid, name, faction, destinationsystem, destinationstation, commodity, amount, passengertype, passengerswanted, target, targettype, targetfaction, false, expiry, influence, reputation, localisedname)

A similar approach is likely possible with other events.

'Scan' event: Ring properties not available

EDDI writes a "rings" object when rings are present on a body, but the elements within that ring, as defined by Rings.cs, do not appear to be available in the final output: "Name", "Composition", "Mass", "Inner Radius" "Outer Radius"

'AfmuRepairs' Event: Add

Needs to be added.
Is a repair event is generated when using the amfu or healing limpets to heal the ship? If not, these events will need to include modifications to the ship object. Needs testing?

'RepairDrone' event

Needs to be added.
Is a repair event generated when using the amfu or healing limpets to heal the ship? If not, these events will need to include modifications to the ship object. Needs testing?

EDDI Core: Update delivery mechanism?

We need to assess the update delivery mechanism. jgm had it working very painlessly for end users and I would like to preserve that. Of course, unless he is willing and able to grant us control of the relevant update server, we will have to implement some sort of manual transition. This will need thought.

Add wing events

  • 'WingAdd' Event
  • 'WingJoin' Event
  • 'WingInvite' Event
  • 'WingLeave' Event

'Bond Redeemed' Event: event.rewards empty?

I've been trying to make a list of the rewards when redeeming a combat bond, but it seems the event.rewards variable is always empty. Using len(event.rewards) results in zero. There doesn't seem to be any way to know what factions the redeemed bonds are for.

Is this a bug? Could this be caused by a change in the Player Journal? Or is it by design?

reserves value in reportbody

I have a very strange error with the proposition of script made for description of rings.
reportbody.reserves is always empty, and i don't know if it's only me.
I try to look how it work and i think that in "Body scanned" we work with BodyScannedEvent.cs, and in "Body report", we work more with DataProviderServices.cs
For exemple, to know if the body is Icy or metalic, we use reportbody.planettype and not the .bodyclass of the event description.
It look like too complex for me to change all of that, so i go in easy way.
In "Body scanned" I add a line:
{SetState('Qual_Reserve', event.reserves)}
and I try to call back with: {state.Qual_Reserve} and it also don't work.
I try again with my {GetState('Qual_Reserve)} and like that I retreive the event.reserves (very strange)

the reserves string are the raw fron edname, so:

  • DepletedResources
  • LowResources
  • CommonResources
  • MajorResources
  • PristineResources

'Search and rescue' event

New script added. Needs testing to make sure that the cottle script handles all potential objects that can be handled by this event (I wasn't able to locate a complete list and made some guesses while prepping the cottle script)

Companion API: Incorporate updates for E:D2.4

https://forums.frontier.co.uk/showthread.php/373036-Changes-to-Companion-API-2-4-Open-Beta?p=5859432&viewfull=1#post5859432

  • Some modifications for modules are now displayed in /profile, some modifications are not yet included (ship.modules entries have some new fields for engineers' mods.)
  • Market & Starsystem controlling Factions & Superpowers displayed in /profile are now correct
  • Added current ship's Fighters and / or SRVs to /profile
  • Shield damage resistances should now be included on shield generators and boosters
  • Display values should now be correct for modifiers where lower values are improvements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.