# NMSlib [![](https://img.shields.io/badge/License%20-MIT-green)](COPYING) [![GoDoc](https://godoc.org/gitlab.com/Raum0x2A/nmslib?status.svg)](https://godoc.org/gitlab.com/Raum0x2A/nmslib) [![](https://img.shields.io/gitlab/pipeline/Raum0x2A/nmslib/master?label=Master&logo=go)](https://gitlab.com/Raum0x2A/nmslib) [![](https://img.shields.io/gitlab/pipeline/Raum0x2A/nmslib/develop?label=Develop&logo=go)](https://gitlab.com/Raum0x2A/nmslib/-/tree/develop) [![](https://img.shields.io/badge/Release-v1.0.0-blue?style=flat&logo=go)](https://gitlab.com/Raum0x2A/nmslib/-/releases/v1.0.0) NMSlib is a GoLang package for dealing with converting Galactic coordinates to Portal codes and vice versa. NMSlib also translates in game languages (Korvax, Gek Vy'Keen and Atlas) to english, and create portal banners. ## Installation To install this module use `go get` ```golang go get -u gitlab.com/Raum0x2A/nmslib ``` ## Usage ### Example: ```golang package main import ( "fmt" "gitlab.com/Raum0x2A/nmslib" ) func main() { portalcode := "21F2F8EDB94D" galacticCoords, err := nmslib.P2gc(portalcode) if err != nil { panic(err) } fmt.Printf("Input:\t%s\nOutput:\t%s\n", portalcode, galacticCoords) g2p, err := nmslib.Gc2p("014C:0077:06DA:01F2", 2) if err != nil { panic(err) } fmt.Printf("Input:\t014C:0077:06DA:01F2\nOutput:\t%s\n", g2p) _ := nmslib.CreateBanner(portalcode, "./NMH-BlueDream.png", 0) _ := nmslib.CreateBanner(nmslib.RndPortal(), "./Random.png", 0) fmt.Println(nmslib.Translate{Lang: "korvax"}.ToEng("KIHTYOMOLES")) korvax := nmslib.Translate{"english"} fmt.Println(korvax.ToKorvax("Contraband")) } ``` ## Creating a Glyph banner with CreateBanner() This function takes 3 parameters and reurns an error * portalcode: 12 char hex string of portal location * savename: Save location and name * layout: * 00 or 0 is horizontal in light mode * 01 or 1 is horizontal in dark mode * 11 is vertical in dark mode * 10 is vertical in light mode **Example:** Horizontal Layout for the NMH Capital planet [Blue Dream (aka Omins XI)](https://nomanssky.fandom.com/wiki/Omins_XI) in the [Notric-Lis XIII](https://nomanssky.fandom.com/wiki/Notric-Lis_XIII) system in the [Lahanhar Conflux](https://nomanssky.fandom.com/wiki/Lahanhar_Conflux) region ```golang err := nmslib.CreateBanner("21F2F8EDB94D", "NMH-BlueDream.png", 0) if err !=nil { panic(err) } ``` ![](NMH-BlueDream.png) Vertical layout for a random address ```golang err := nmslib.CreateBanner(nmslib.RndPortal(), "ranportal.png", 11) if err != nil { panic(err) } ``` ![](ranportal_scaled.png) _Note: Image shown in readme.md's vertical example have been scaled down in gimp for easier viewing on gitlab._ _Original ranportal.png: 256x3072px_ ### Converting Portal code to Galactic address with P2gc() This function only takes 1 parameter and returns a string and error * portalcode: 12 char hex string of portal glyphs **Example:** ```golang ga, _ := nmslib.P2gc("21F2F8EDB94D") fmt.Println(ga) ``` Output: ``014C:0077:06DA:01F2`` ### Converting Galactic coordinates to Portal codes with Gc2p() This function only takes 2 parameters and returns a string and error * galacticaddress: 16 char 4 block hex address * Planet ID [1-6] **Example:** ```golang pc, _ := nmslib.Gc2p("014C:0077:06DA:01F2", 2) fmt.Println(pc) ``` Output: ``21F2F8EDB94D`` ## Translate Words Supported languages - Korvax - Gek - Vy'keen - Atlas ### Translate Atlas to English with Atl2Eng() This function takes only 1 parameter and returns a string * Word: Any known Atlas word (ex. Paka) _note: Translating to english will **always** result in the lowercase equivilent word_ **Example:** ```golang fmt.Println(nmslib.Translate{Lang: "atlas"}.ToEng("Paka")) ``` Output: ``awake`` ### Translate English to Korvax with Eng2Korvax() This function takes only 1 parameter and returns a string * engword: English word to attempt conversion **Example:** ```golang korvax := nmslib.Translate{"english"} fmt.Println(korvax.ToKorvax("Contraband")) ``` Output: ``Zelidovoso`` ### Language commands - ``Translate{Lang: ``string``}.ToEng(``string``)`` - ``Translate{Lang: ``string``}.ToKorvax(``string``)`` - ``Translate{Lang: ``string``}.ToGek(``string``)`` - ``Translate{Lang: ``string``}.ToVykeen(``string``)`` - ``Translate{Lang: ``string``}.ToAtlat(``string``)`` #### Possible Lang string options - ``"english"`` - ``"korvax"`` - ``"gek"`` - ``"vykeen"`` - ``"atlas"`` ## Random Portal address Generate random portal codes - Atlas Station - Black Hole - Random address All random address created will default to the planet index 1 to help ensure there the address is valid **Example:** ```golang fmt.Println(nmslib.RndPortal()) fmt.Println(nmslib.RndPortal()) fmt.Println(nmslib.RndAtlas()) fmt.Println(nmslib.RndBH()) ``` **Output examples:** ``10EFABDEA373`` ``11EAB355FC8E`` ``107AC0E190D1`` ``10796D57AE15``
## A Proud member of NMH Hub ### [![Official Page](https://static.wikia.nocookie.net/nomanssky_gamepedia/images/5/5a/NMH_Banner_Hub.png/revision/latest/scale-to-width-down/85?cb=20201210044657)](https://nomanssky.fandom.com/wiki/No_Man%27s_High_Hub) [![Discord Server](https://img.shields.io/badge/Discord-Invite-blue?&logo=discord&logoColor=white)](https://discord.gg/mhRxf29hns)