Skip to content

NMSCD/Coordinate-Conversion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coordinate Conversion

Library with conversion functions for NMS coordinates

Supported by the No Man's Sky Community Developers & Designers

Vite Vitest Typescript
Github Actions

Installation

NPM:

npm i @nmscd/coordinate-conversion

From CDN with <script> tag:

<script type="text/javascript" src="https://nmscd.com/Coordinate-Conversion/bundle.js"></script>

Converters

  • PortalCode
    • Inputs (only one is required)
      • code - 03894AC8D91F
      • hexArray - ['0', '3', '8', '9', '4', 'A', 'C', '8', 'D', '9', '1', 'F']
      • numberArray - [0, 3, 8, 9, 4, 10, 12, 8, 13, 9, 1, 15]
    • Methods
      • toGalacticCoordinates
      • toVoxel
  • GalacticCoordinate
    • Inputs (only one is required)
      • code - 0C55:00D5:0922:0234 or 0C5500D509220234
      • groups - ['0C55', '00D5', '0922', '0234']
    • Methods
      • toGlyph
      • toVoxel
  • VoxelCoordinate

Conversion result

The conversions will return an object to indicate whether the conversion was successful or not.

const galacticConversionResult = PortalCode({ code: '023456123456' }).toGalacticCoordinates();
console.log(galacticConversionResult); // { isSuccess: true, value: { 'code': '0C55:00D5:0922:0234', 'groups': ['0C55', '00D5', '0922', '0234'] }, errorMessage: ''

const voxelConversionResult = GalacticCoordinate({ code: '0C55:00D5:0922:0234' }).toGlyph();
console.log(voxelConversionResult); // { isSuccess: true, value: '023456123456', errorMessage: ''

// Example of error in conversion
const galacticConversionResult = PortalCode({ code: 'tester' }).toGalacticCoordinates();
console.log(galacticConversionResult); /*
{
  isSuccess: false,
  value: '',
  errorMessage: 'Character is an unexpected value (t), expected values 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, a, b, c, d, e, f, A, B, C, D, E, F'
}
*/

Types

Voxel Coordinates

import type { VoxelCoordinates } from '@nmscd/coordinate-conversion';

type VoxelCoordinates = {
  VoxelX: number;
  VoxelY: number;
  VoxelZ: number;
  SolarSystemIndex: number;
  PlanetIndex: number;
};

Code coverage