Compare commits
5 Commits
v1.0.0-bet
...
v1.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3588826556 | ||
|
|
98d812c904 | ||
|
|
86bc493ead | ||
|
|
3cfae880ee | ||
|
|
b41f25646d |
113
README.md
113
README.md
@@ -1,27 +1,27 @@
|
||||
# NMSlib
|
||||
|
||||
**master Branch** : 
|
||||
|
||||
**develop Branch** : 
|
||||
[](COPYING)
|
||||
[](https://godoc.org/gitlab.com/Raum0x2A/nmslib)
|
||||
[](https://gitlab.com/Raum0x2A/nmslib)
|
||||
[](https://gitlab.com/Raum0x2A/nmslib/-/tree/develop)
|
||||
[](https://gitlab.com/Raum0x2A/nmslib/-/releases/v1.0.1)
|
||||
|
||||
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.
|
||||
|
||||
[GoDoc](https://pkg.go.dev/gitlab.com/Raum0x2A/nmslib#section-documentation)
|
||||
|
||||
## Installation
|
||||
|
||||
To install this module use `go get`
|
||||
|
||||
|
||||
```bash
|
||||
```golang
|
||||
go get -u gitlab.com/Raum0x2A/nmslib
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
**Example:**
|
||||
### Example:
|
||||
|
||||
```golang
|
||||
package main
|
||||
@@ -40,20 +40,26 @@ func main() {
|
||||
}
|
||||
fmt.Printf("Input:\t%s\nOutput:\t%s\n", portalcode, galacticCoords)
|
||||
|
||||
nmslib.CreateBanner(portalcode, "./NMH-BlueDream.png", 0)
|
||||
nmslib.CreateBanner(RndPortal(), "./Random.png", 0)
|
||||
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{Word: "KIHTYOMOLES"}.Kor2Eng())
|
||||
korvax := nmslib.Translate{Word: "Contraband"}
|
||||
fmt.Println(korvax.Eng2Kor())
|
||||
fmt.Println(nmslib.Translate{Lang: "korvax"}.ToEng("KIHTYOMOLES"))
|
||||
korvax := nmslib.Translate{"english"}
|
||||
fmt.Println(korvax.ToKorvax("Contraband"))
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
### Creating a Glyph banner with CreateBanner()
|
||||
## Creating a Glyph banner
|
||||
|
||||
This function takes 3 parameters:
|
||||
This function takes 3 parameters and reurns an error
|
||||
|
||||
* portalcode: 12 char hex string of portal location
|
||||
* savename: Save location and name
|
||||
@@ -69,7 +75,10 @@ This function takes 3 parameters:
|
||||
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
|
||||
nmslib.CreateBanner("21F2F8EDB94D", "NMH-BlueDream.png", 0)
|
||||
err := nmslib.CreateBanner("21F2F8EDB94D", "NMH-BlueDream.png", 0)
|
||||
if err !=nil {
|
||||
panic(err)
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
@@ -77,18 +86,20 @@ nmslib.CreateBanner("21F2F8EDB94D", "NMH-BlueDream.png", 0)
|
||||
Vertical layout for a random address
|
||||
|
||||
```golang
|
||||
nmslib.CreateBanner(nmslib.RndPortal(), "ranportal.png", 11)
|
||||
err := nmslib.CreateBanner(nmslib.RndPortal(), "ranportal.png", 11)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
_Note: Images shown in readme.md have been scaled down in gimp._
|
||||
_Note: Image shown in readme.md's vertical example have been scaled down in gimp for easier viewing on gitlab._
|
||||
|
||||
_Original Vertical: 256x3072px_
|
||||
_Original ranportal.png: 256x3072px_
|
||||
|
||||
_Original: Horizontal: 3072x256px_
|
||||
|
||||
### Converting Portal code to Galactic address with P2gc()
|
||||
### Converting Portal code to Galactic address
|
||||
|
||||
This function only takes 1 parameter and returns a string and error
|
||||
|
||||
@@ -105,7 +116,7 @@ Output:
|
||||
|
||||
``014C:0077:06DA:01F2``
|
||||
|
||||
### Converting Galactic coordinates to Portal codes with Gc2p()
|
||||
### Converting Galactic coordinates to Portal codes
|
||||
|
||||
This function only takes 2 parameters and returns a string and error
|
||||
|
||||
@@ -132,23 +143,25 @@ Supported languages
|
||||
- Vy'keen
|
||||
- Atlas
|
||||
|
||||
### Translate Atlas to English with Atl2Eng()
|
||||
### Translate Atlas to English
|
||||
|
||||
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{Word: "Paka"}.Atl2Eng())
|
||||
fmt.Println(nmslib.Translate{Lang: "atlas"}.ToEng("Paka"))
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
``Awake``
|
||||
``awake``
|
||||
|
||||
### Translate English to Korvax with Eng2Korvax()
|
||||
### Translate English to Korvax
|
||||
|
||||
This function takes only 1 parameter and returns a string
|
||||
|
||||
@@ -157,8 +170,8 @@ This function takes only 1 parameter and returns a string
|
||||
**Example:**
|
||||
|
||||
```golang
|
||||
korvax := nmslib.Translate{Word: "Contraband"}
|
||||
fmt.Println(korvax.Eng2Kor())
|
||||
korvax := nmslib.Translate{"english"}
|
||||
fmt.Println(korvax.ToKorvax("Contraband"))
|
||||
```
|
||||
|
||||
Output:
|
||||
@@ -168,38 +181,52 @@ Output:
|
||||
|
||||
### Language commands
|
||||
|
||||
Gek:
|
||||
- ``Translate{Word: string}.Gek2Eng()``
|
||||
- ``Translate{Word: string}.Eng2Gek()``
|
||||
- ``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``)``
|
||||
|
||||
Korvax:
|
||||
- ``Translate{Word: string}.Kor2Eng()``
|
||||
- ``Translate{Word: string}.Eng2Kor()``
|
||||
#### Possible Lang string options
|
||||
|
||||
Vy'keen:
|
||||
- ``Translate{Word: string}.Vyk2Eng()``
|
||||
- ``Translate{Word: string}.Eng2Vyk()``
|
||||
- ``"english"``
|
||||
- ``"korvax"``
|
||||
- ``"gek"``
|
||||
- ``"vykeen"``
|
||||
- ``"atlas"``
|
||||
|
||||
Atlas:
|
||||
- ``Translate{Word: string}.Atl2Eng()``
|
||||
- ``Translate{Word: string}.Eng2Atl()``
|
||||
|
||||
|
||||
## Random Portal address
|
||||
### Create a 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:**
|
||||
**Output examples:**
|
||||
|
||||
``10EFABDEA373``
|
||||
|
||||
``11EAB355FC8E``
|
||||
|
||||
## License
|
||||
[MIT](COPYING)
|
||||
``107AC0E190D1``
|
||||
|
||||
``10796D57AE15``
|
||||
|
||||
<hr>
|
||||
|
||||
## A Proud member of NMH Hub
|
||||
|
||||
### [](https://nomanssky.fandom.com/wiki/No_Man%27s_High_Hub) [](https://discord.gg/mhRxf29hns)
|
||||
|
||||
@@ -23,19 +23,40 @@ var opt int
|
||||
* note first of the 2 bits sets the layout, the second bit sets the glyph color
|
||||
*/
|
||||
func CreateBanner(portalhex string, savename string, opt int) (err error) {
|
||||
out, err := GenRawBanner(portalhex, opt)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
gg.SavePNG(savename+".png", out)
|
||||
//gg.SaveJPG(savename+".jpg", out, 50)
|
||||
return
|
||||
}
|
||||
|
||||
/*GenRawBanner - Returns image.Image of genorated image
|
||||
Requires 2 vars and returns image.Image (raw image data) and an error
|
||||
var portalex string: Portal Glyph hex string
|
||||
var opt int
|
||||
00 sets horizontal banner in light mode [ 00 || 0 ]
|
||||
01 sets horizontal banner in dark mode [ 01 || 1 ]
|
||||
10 sets vertical banner in light mode
|
||||
11 sets vertical banner in dark mode
|
||||
|
||||
* note first of the 2 bits sets the layout, the second bit sets the glyph color
|
||||
*/
|
||||
func GenRawBanner(portalhex string, layout int) (portalbanner image.Image, err error) {
|
||||
var GlyphHex [12]int64
|
||||
var glyphImg [12]string
|
||||
var mode string
|
||||
var imgArray [12]image.Image
|
||||
|
||||
//Set light or dark mode glyphs
|
||||
if opt == 00 || opt == 10 {
|
||||
if layout == 00 || layout == 10 {
|
||||
mode = "light"
|
||||
} else if opt == 01 || opt == 11 {
|
||||
} else if layout == 01 || layout == 11 {
|
||||
mode = "dark"
|
||||
} else {
|
||||
// if opt is an invalid option (ie. not a 2 bit binary number default to classic mode/layout
|
||||
opt = 0
|
||||
// if layout is an invalid option (ie. not a 2 bit binary number default to classic mode/layout
|
||||
layout = 0
|
||||
mode = "light"
|
||||
}
|
||||
|
||||
@@ -45,7 +66,7 @@ func CreateBanner(portalhex string, savename string, opt int) (err error) {
|
||||
for i := 0; i < len(portalhex); i++ {
|
||||
GlyphHex[i], err = strconv.ParseInt(portalhex[i:int(i+1)], 16, 16)
|
||||
if err != nil {
|
||||
return errors.New("string provided is not hexadecimal ([0-9][A-F])")
|
||||
return nil, errors.New("string provided is not hexadecimal ([0-9][A-F])")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,11 +79,11 @@ func CreateBanner(portalhex string, savename string, opt int) (err error) {
|
||||
for k := 0; k < len(glyphImg); k++ {
|
||||
data, err := Asset(glyphImg[k])
|
||||
if err != nil {
|
||||
return errors.New("can not load images from assets: " + glyphImg[k])
|
||||
return nil, errors.New("can not load images from assets: " + glyphImg[k])
|
||||
}
|
||||
err = ioutil.WriteFile(NmsTemp+"/"+glyphImg[k], []byte(data), 0644)
|
||||
if err != nil {
|
||||
return errors.New("can not write file to temp directory")
|
||||
return nil, errors.New("can not write file to temp directory")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +91,7 @@ func CreateBanner(portalhex string, savename string, opt int) (err error) {
|
||||
for iter := 0; iter < 12; iter++ {
|
||||
imgArray[iter], err = gg.LoadPNG(NmsTemp + "/" + glyphImg[iter])
|
||||
if err != nil {
|
||||
return errors.New("can not read glyph " + glyphImg[iter])
|
||||
return nil, errors.New("can not read glyph " + glyphImg[iter])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,28 +99,30 @@ func CreateBanner(portalhex string, savename string, opt int) (err error) {
|
||||
// get image size of first glyph, all glyphs have the same X && Y dimension so we only need to measure one.
|
||||
imgDim := imgArray[0].Bounds().Size()
|
||||
|
||||
//Set Layout
|
||||
//classic horizontal layout
|
||||
if opt == 01 || opt == 00 {
|
||||
if layout == 01 || layout == 00 {
|
||||
imgWidth := imgDim.X * 12
|
||||
imgHeight := imgDim.Y
|
||||
concat := gg.NewContext(imgWidth, imgHeight)
|
||||
for a := 0; a < 12; a++ {
|
||||
concat.DrawImage(imgArray[a], imgDim.X*a, 0)
|
||||
}
|
||||
concat.SavePNG(savename)
|
||||
return concat.Image(), nil
|
||||
}
|
||||
|
||||
//Vertical layout
|
||||
if opt == 10 || opt == 11 {
|
||||
if layout == 10 || layout == 11 {
|
||||
imgWidth := imgDim.X
|
||||
imgHeight := imgDim.Y * 12
|
||||
concat := gg.NewContext(imgWidth, imgHeight)
|
||||
for a := 0; a < 12; a++ {
|
||||
concat.DrawImage(imgArray[a], 0, imgDim.Y*a)
|
||||
}
|
||||
concat.SavePNG(savename)
|
||||
return concat.Image(), nil
|
||||
}
|
||||
} else {
|
||||
return errors.New("portalcode must be exactly 12 chars")
|
||||
return nil, errors.New("portalcode must be exactly 12 chars")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module gitlab.com/Raum0x2A/nmslib
|
||||
go 1.16
|
||||
|
||||
require (
|
||||
github.com/fogleman/gg v1.3.0
|
||||
github.com/fogleman/gg v1.3.1-0.20210131172831-af4cd580789b
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||
golang.org/x/image v0.0.0-20210504121937-7319ad40d33e // indirect
|
||||
)
|
||||
|
||||
4
go.sum
4
go.sum
@@ -1,5 +1,5 @@
|
||||
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/fogleman/gg v1.3.1-0.20210131172831-af4cd580789b h1:gqOBIAmkc/ZxXzFrM4wTub7tD0xYaOsaOQ5wOA74lJQ=
|
||||
github.com/fogleman/gg v1.3.1-0.20210131172831-af4cd580789b/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||
golang.org/x/image v0.0.0-20210504121937-7319ad40d33e h1:PzJMNfFQx+QO9hrC1GwZ4BoPGeNGhfeQEgcQFArEjPk=
|
||||
|
||||
@@ -10,7 +10,7 @@ func TestCreateBanner(t *testing.T) {
|
||||
|
||||
rp := "21F2F8EDB94D"
|
||||
//rp := RndPortal()
|
||||
fileout := "./test.png"
|
||||
fileout := "./test"
|
||||
|
||||
err := CreateBanner(rp, fileout, 0)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user