Code Monkey home page Code Monkey logo

xi4n's Introduction

xi4n: eXtensible Insim 4 Node.js

An application (or library) that can be used to talk to Live For Speed [LFS] clients and servers, and automate actions, alter behaviour or provide access for live data to third parties.

Docs

Online documentation for the recommended version. Includes getting started guides and API documentation.

For master checkout the source and run make docs. HTML documentation will then be build and available in docs/_build/html/.

Todo

See issues on GitHub, and grep for TODO through source.

Contributing

Pull requests kindly accepted.

Please add yourself to the package.json as a contributor :) Credit where credit is due.

More Information

xi4n's People

Contributors

blakmatrix avatar pascalmd avatar theangryangel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xi4n's Issues

livemap is not cleared correctly between 2 races

livemap2.js has issues when running a replay in loop or perhaps between 2 races too,
that the track and results table is not cleared correctly,
so that after the 2nd start occasionally some additional players still shown on track and list from the end of the race before.

Outgauge + MCI Packets = :(

Karl:

I've IRC'd you.. but I thought it's easier if I do something more proper.

If you (or me) create an app that requires MCI packets and Outgauge packets.. we will only ever receive Outgauge packets.

This is becuase if a UDP port is not set, LFS will send MCI to the TCP connection, however if a UDP port is set (for Outgauge).. the MCI packets are sent there where Outgauge is totally unprepared to handle them (as one would expect).

I was having these issues the other day with MCI packets (as you know).. and I've uncovered as to why this is happening.

Unfortunately, upon first glance.. this doesn't seem like a really easy fix (as it's kinda core to how LFS does everything).

Introduce config.d directory

There should be a config.d directory to allow multiple configuration files, which are auto-included and merged. This allows for better packaging.

Finish buttons.js

Final version(s) of tv.js and tv2.js require this so I can do a proper head-to-head video on the 2 competing ideas.

Client Config

The config the client loads is selective. We probably dont want to do that.

Lack of braces

I'm going to go fix all the lack of braces around single-line if's. It drives me fucking crazy when looking at any of the code and hinders readability.

๐Ÿ‘…

Plugin architecture broken

Current plugin architecture does not easily permit per-connection settings or multiple instances of the same plugin, without the plugin having to resort to managing it's own settings in an overly complex manner.

i.e. 2 instances of livemap running on different ports, or multiple versions of a track rotation plugin with different sets of stuff.

Proposed fix:
Plugins should return a function object that a new object can be created for each set of settings.

Pros:

  • Each plugin automatically gets it's own space to save state and options
  • Plugins can still be associated with multiple connections

Cons:

  • Requires all plugins to be updated
  • Plugins become more difficult to write

Sweet Libary Karl!

Hi Karl:

A bit of a oblong way to send a message (hard to PM someone without an active LFSF account!, and Github doesn't have a good method to send a PM).

A NodeJS Insim thing is really cool. I looked at the (outdated) video on the forum.. and it looks really cool. I've recently had the pleasure of starting to learn Javascript seriously (not as a basic rollover scripting language as most people use it as) due to my job. I am really impressed with it!

Dustin

plugin/state.js is broken

Occasionally outputs the wrong track name (usually a number), and has issues with racers.
This breaks livemap2.js and the tv.js prototypes.

Outdated version on NPM

Hi!
When you install XI4N by npm you get 0.0.4 version which don't have many new features. Can you see what happened? I know that few days ago there were problems with npm, registry wan't working.

outgauge packets?

Having the ability to setup a socket to Node with Outgauge data being streamed would be really nice. Especially now that I have a nice pretty iPad, coding a web app gauge thing would be nice.

Write docs

No documentation written yet. Needs to cover:

  • Installing
  • Customising config
  • Updating
  • Installing plugins
  • Customising plugins
  • Writing plugins

xi4n node_modules magic

When using a custom (i.e. not install) config path, some of the plugins don't work. This is due to their dependance on some of the core xi4n modules.

Master is broken

Master is broken, it shouldn't be. Development should be in branches, doooh :(

livemap2 express@3

package.json specifies *. This installs 3 now. Should probably fix that.

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.