diff --git a/.gitignore b/.gitignore index 3ed09ab..548e87d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -assets/ \ No newline at end of file +assets/ +.vscode/ +notes.txt +Test.png +test.png \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9ae4978..8e9e8e0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,4 +6,5 @@ test: image: golang:1.16.3 script: - go test - + except: + - portalbanner-resize diff --git a/NMH-BlueDream.png b/NMH-BlueDream.png new file mode 100644 index 0000000..f057a81 Binary files /dev/null and b/NMH-BlueDream.png differ diff --git a/NewLennon.png b/NewLennon.png deleted file mode 100644 index 95fbcf7..0000000 Binary files a/NewLennon.png and /dev/null differ diff --git a/README.md b/README.md index b822b74..e1cbf0c 100644 --- a/README.md +++ b/README.md @@ -31,17 +31,19 @@ import ( ) func main() { - portalcode := nmslib.RndPortal() - galaticAddress, _ := nmslib.P2gc(portalcode) - fmt.Printf("Random portal code: %s\n", portalcode) - - fmt.Printf("%s >> %s\n", portalcode, galaticAddress) - nmslib.CreateBanner(portalcode, "./banners/"+portalcode+".png", 10) - fmt.Printf("saving image to ./banners/%s.png\n", portalcode) - - fmt.Println("Translating \"KIHTYOMOLES\" from Korvax To English: " + nmslib.Translate{Word: "KIHTYOMOLES"}.Kor2Eng()) - korvax := nmslib.Translate{Word: "Contraband"} - fmt.Println("Translating \"Contraband\" from English to Korvax: " + korvax.Eng2Kor()) + portalcode := "21F2F8EDB94D" + galacticCoords, err := nmslib.P2gc(portalcode) + if err != nil { + panic(err) + } + fmt.Printf("Input:\t%s\nOutput:\t%s\n", portalcode, galacticCoords) + + nmslib.CreateBanner(portalcode, "./NMH-BlueDream.png", 0) + nmslib.CreateBanner(RndPortal(), "./Random.png", 0) + + fmt.Println(nmslib.Translate{Word: "KIHTYOMOLES"}.Kor2Eng()) + korvax := nmslib.Translate{Word: "Contraband"} + fmt.Println(korvax.Eng2Kor()) } @@ -62,13 +64,13 @@ This function takes 3 parameters: **Example:** -Horizontal Layout for Galactic Hub [HUB10-6A Icarus Sun](https://nomanssky.gamepedia.com/HUB10-6A_Icarus_Sun) Eniwa 68/L3 +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("006AFA556C30", "NewLennon.png", 0) +nmslib.CreateBanner("21F2F8EDB94D", "NMH-BlueDream.png", 0) ``` -![](NewLennon.png) +![](NMH-BlueDream.png) Vertical layout for a random address @@ -93,7 +95,7 @@ This function only takes 1 parameter and returns a string and error **Example:** ```golang -ga, _ := nmslib.P3gc("21F2F8EDB94D") +ga, _ := nmslib.P2gc("21F2F8EDB94D") fmt.Println(ga) ``` @@ -103,14 +105,15 @@ Output: ### Converting Galactic coordinates to Portal codes with Gc2p() -This function only takes 1 parameter and returns a string and error +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.P3gc("014C:0077:06DA:01F2") +pc, _ := nmslib.Gc2p("014C:0077:06DA:01F2", 2) fmt.Println(pc) ``` diff --git a/assets.go b/assets.go index 0877d01..4f9cfbf 100644 --- a/assets.go +++ b/assets.go @@ -55,7 +55,7 @@ import ( func bindataRead(data []byte, name string) ([]byte, error) { gz, err := gzip.NewReader(bytes.NewBuffer(data)) if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) + return nil, fmt.Errorf("read %q: %v", name, err) } var buf bytes.Buffer @@ -63,7 +63,7 @@ func bindataRead(data []byte, name string) ([]byte, error) { clErr := gz.Close() if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) + return nil, fmt.Errorf("read %q: %v", name, err) } if clErr != nil { return nil, err diff --git a/convert.go b/convert.go index 65d103c..0f99cba 100644 --- a/convert.go +++ b/convert.go @@ -14,7 +14,7 @@ import ( /* P2gc - Portal code to galactic coordinates -Requires 1 var and returns 1 var string +Requires 1 var and returns 1 var string and an error var p string Portal Glyph hex string 12 chars in len (ex. 006afa556c30) Return var string @@ -27,19 +27,19 @@ func P2gc(p string) (gc string, err error) { var coord [4]int64 coord[1], err = strconv.ParseInt(p[4:6], 16, 16) // Y coordinate if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [4:6]") } coord[2], err = strconv.ParseInt(p[6:9], 16, 16) // Z cooridnate if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [6:9]") } coord[3], err = strconv.ParseInt(p[9:12], 16, 16) // X coordinate if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [9:12]") } coord[0], err = strconv.ParseInt(p[1:4], 16, 16) // SSI (Star System Identifier) if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [1:4]") } // apply shifts to Handle the shape/boundaries of the galaxy @@ -72,13 +72,16 @@ Requires 1 string and 1 int returns a string and error Galactic address (ex. 042F:0079:0D55:006A) var p int Planet ID [1-6] - Return var string + Return portalcode string Portal Glyph hex string 12 chars in len (ex. 006afa556c30) */ func Gc2p(gc string, p int) (portalcode string, err error) { // split and store string // coords[0] == X; coords[1] == Y coords[2] == Z; // coords[3] == SSI coords[4] == P + if len(gc) != 19 { + return "", errors.New("galatic code is the wrong length") + } if p > 6 { p = 1 } @@ -91,23 +94,23 @@ func Gc2p(gc string, p int) (portalcode string, err error) { var hexCoords [5]int64 hexCoords[0], err = strconv.ParseInt(coords[4], 16, 16) // P if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [4]") } hexCoords[1], err = strconv.ParseInt(coords[3], 16, 16) // SSI if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [3]") } hexCoords[2], err = strconv.ParseInt(coords[1], 16, 16) // Y if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [1]") } hexCoords[3], err = strconv.ParseInt(coords[2], 16, 16) // Z if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [2]") } hexCoords[4], err = strconv.ParseInt(coords[0], 16, 16) // X if err != nil { - panic(err) + return "", errors.New("error parsing intergers from string: [0]") } // Apply shifts to Handle the shape/boundaries of the galaxy @@ -130,5 +133,5 @@ func Gc2p(gc string, p int) (portalcode string, err error) { portalcode = portalcode + fmt.Sprintf("%03X", hexCoords[n]) } } - return portalcode, err // return formated string and error + return // return formated string and error } diff --git a/glyphbanner.go b/glyphbanner.go index 350a3a5..4663e08 100644 --- a/glyphbanner.go +++ b/glyphbanner.go @@ -1,110 +1,123 @@ package nmslib import ( + "errors" "fmt" - "image/png" + "image" "io/ioutil" "os" "strconv" - gim "github.com/ozankasikci/go-image-merge" + "github.com/fogleman/gg" ) /*CreateBanner - Output PNG of Portal Glyphs -Requires 3 vars and returns 0 var, Outputs a PNG file +Requires 3 vars and returns 1 err, Outputs a PNG file var portalex string Portal Glyph hex string var savename string Output name of PNG file var opt int - 00 sets horizontal banner in light mode + 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 - 01 sets horizontal banner in dark 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 CreateBanner(portalhex string, savename string, opt int) { - var err error +func CreateBanner(portalhex string, savename string, opt int) (err error) { var GlyphHex [12]int64 var glyphImg [12]string var mode string - var vert int - var horz int + var imgArray [12]image.Image // Setup temp dir tempdir, err := ioutil.TempDir("", "nmslib-") if err != nil { - panic(err) + return errors.New("can not create temp directory") + } + // don't forget to clean up afterwords + defer os.RemoveAll(tempdir) + + //Set light or dark mode glyphs + if opt == 00 || opt == 10 { + mode = "light" + } else if opt == 01 || opt == 11 { + mode = "dark" + } else { + // if opt is an invalid option (ie. not a 2 bit binary number default to classic mode/layout + opt = 0 + mode = "light" } - //defer os.RemoveAll(tempdir) // verify len of portalhex if len(portalhex) == 12 { - // get hex value from each digit in given string to an array of int64 + // get hex value from each digit in given string and add it to an array of int64 for i := 0; i < len(portalhex); i++ { GlyphHex[i], err = strconv.ParseInt(portalhex[i:int(i+1)], 16, 16) if err != nil { - panic(err) + return errors.New("string provided is not hexadecimal ([0-9][A-F])") } } - // set options - if opt == 00 { // set vertical rendering in light mode - vert, horz = 12, 1 - mode = "light" - } else if opt == 01 { // set vertival in dark mode - vert, horz = 12, 1 - mode = "dark" - } else if opt == 11 { // set horizontal rendering in dark mode - vert, horz = 1, 12 - mode = "dark" - } else { // set horizontal rendering in light mode (classic/default) - vert, horz = 1, 12 - mode = "light" - } - - // assign image location of its glyph hex value to an array of strings + // assign image location of its glyph-hex value to an array of strings for j := 0; j < len(glyphImg); j++ { glyphImg[j] = fmt.Sprintf("assets/glyphs/%s/PORTALSYMBOL.%X.png", mode, GlyphHex[j]) } - // pull images need from glyph.go and saved them to ./glyphs/ + + // pull images need from assets.go and saved them to the temp directory for k := 0; k < len(glyphImg); k++ { data, err := Asset(glyphImg[k]) if err != nil { - panic(err) + return errors.New("can not load images from assets: " + glyphImg[k]) } _, err2 := os.Stat(tempdir + "/assets/glyphs/" + mode + "/") if os.IsNotExist(err2) { errDir := os.MkdirAll(tempdir+"/assets/glyphs/"+mode, 0755) if errDir != nil { - panic(errDir) + return errors.New("can not create temp directory") } } - // fmt.Println(tempdir + "/" + glyphImg[k]) // for debugging only err = ioutil.WriteFile(tempdir+"/"+glyphImg[k], []byte(data), 0644) - + if err != nil { + return errors.New("can not write file to temp directory") + } } - // load images for processing using github.com/ozankasikci/go-image-merge - grids := []*gim.Grid{ - {ImageFilePath: tempdir + "/" + glyphImg[0]}, {ImageFilePath: tempdir + "/" + glyphImg[1]}, - {ImageFilePath: tempdir + "/" + glyphImg[2]}, {ImageFilePath: tempdir + "/" + glyphImg[3]}, - {ImageFilePath: tempdir + "/" + glyphImg[4]}, {ImageFilePath: tempdir + "/" + glyphImg[5]}, - {ImageFilePath: tempdir + "/" + glyphImg[6]}, {ImageFilePath: tempdir + "/" + glyphImg[7]}, - {ImageFilePath: tempdir + "/" + glyphImg[8]}, {ImageFilePath: tempdir + "/" + glyphImg[9]}, - {ImageFilePath: tempdir + "/" + glyphImg[10]}, {ImageFilePath: tempdir + "/" + glyphImg[11]}, + //Load/open images needed + for iter := 0; iter < 12; iter++ { + imgArray[iter], err = gg.LoadPNG(tempdir + "/" + glyphImg[iter]) + if err != nil { + return errors.New("can not read glyph " + glyphImg[iter]) + } } - // create new image from grids - rgba, err := gim.New(grids, vert, horz).Merge() - if err != nil { - panic(err) - } + //begin concatenating images + // 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() - // save the output to png - file, err := os.Create(savename) - err = png.Encode(file, rgba) - if err != nil { - fmt.Println(err) + //classic horizontal layout + if opt == 01 || opt == 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) } + //Vertical layout + if opt == 10 || opt == 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) + } + } else { + return errors.New("portalcode must be exactly 12 chars") } + return } diff --git a/go.mod b/go.mod index e6b6254..75409c4 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,9 @@ module gitlab.com/Raum0x2A/nmslib -go 1.15 +go 1.16 -require github.com/ozankasikci/go-image-merge v0.2.2 +require ( + github.com/fogleman/gg v1.3.0 + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + golang.org/x/image v0.0.0-20210504121937-7319ad40d33e // indirect +) diff --git a/go.sum b/go.sum index 0a77f3d..bfa0ddc 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,7 @@ -github.com/ozankasikci/go-image-merge v0.2.2 h1:K370BLLTIsamwjAeViiPntf7GiG3h9pXzDmxXCbN8/0= -github.com/ozankasikci/go-image-merge v0.2.2/go.mod h1:NQ2aN0b21buFx3p+5x4dZrKuPSLh2uBukK7F30BrYTo= +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/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= +golang.org/x/image v0.0.0-20210504121937-7319ad40d33e/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/lang.go b/lang.go index 36e8f0e..eb8893e 100644 --- a/lang.go +++ b/lang.go @@ -191,6 +191,9 @@ func openCSV(lagcsv string) [][]string { // wirte extracted data to temp dir err = ioutil.WriteFile(tempdir+"/"+lagcsv, []byte(data), 0644) + if err != nil { + fmt.Println(err) + } csvFile, err := os.Open(tempdir + "/" + lagcsv) if err != nil { fmt.Println(err) diff --git a/nmslib-convert_test.go b/nmslib-convert_test.go new file mode 100644 index 0000000..2f64236 --- /dev/null +++ b/nmslib-convert_test.go @@ -0,0 +1,30 @@ +package nmslib + +import ( + "fmt" + "testing" +) + +func TestPortal2Galactic(t *testing.T) { + want, err := P2gc("21F2F8EDB94D") + if err != nil { + fmt.Println(err) + } + if want != "014C:0077:06DA:01F2" { + t.Errorf("Testing P2gc(\"21F2F8EDB94D\"): got %q, want: 014C:0077:06DA:01F2.\n", want) + } else { + fmt.Printf("Testing P2gc(\"21F2F8EDB94D\"): got: %q, want: 014C:0077:06DA:01F2.\n", want) + } +} + +func TestGalactic2portal(t *testing.T) { + want, err := Gc2p("014C:0077:06DA:01F2", 2) + if err != nil { + fmt.Println(err) + } + if want != "21F2F8EDB94D" { + t.Errorf("\nTesting Gc2p(\"014C:0077:06DA:01F2\"): got %q, want: 21F2F8EDB94D.\n", want) + } else { + fmt.Printf("\nTesting Gc2p(\"014C:0077:06DA:01F2\"): got: %q, want: 21F2F8EDB94D.\n", want) + } +} diff --git a/nmslib-glyphbanner_test.go b/nmslib-glyphbanner_test.go new file mode 100644 index 0000000..64d713e --- /dev/null +++ b/nmslib-glyphbanner_test.go @@ -0,0 +1,21 @@ +package nmslib + +import ( + "fmt" + "testing" +) + +func TestCreateBanner(t *testing.T) { + fmt.Printf("\nTesting CreateBanner: ") + + rp := "21F2F8EDB94D" + //rp := RndPortal() + fileout := "./test.png" + + err := CreateBanner(rp, fileout, 0) + if err != nil { + fmt.Println(err) + } + + fmt.Printf("Portal address `%s` rendered as `%s`\n", rp, fileout) +} diff --git a/nmslib-rpcg_test.go b/nmslib-rpcg_test.go new file mode 100644 index 0000000..5717ff8 --- /dev/null +++ b/nmslib-rpcg_test.go @@ -0,0 +1,11 @@ +package nmslib + +import ( + "fmt" + "testing" +) + +func TestRndPortal(t *testing.T) { + fmt.Printf("\nRandom Portal Code: ") + fmt.Println(RndPortal()) +} diff --git a/nmslib-translate_test.go b/nmslib-translate_test.go new file mode 100644 index 0000000..c9d0688 --- /dev/null +++ b/nmslib-translate_test.go @@ -0,0 +1,35 @@ +package nmslib + +import ( + "fmt" + "testing" +) + +func TestTranslate(t *testing.T) { + want := Translate{"Paka"} + if want.Atl2Eng() != "Awake" { + t.Errorf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake") + } else { + fmt.Printf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake") + } + want = Translate{"hofsos"} + if want.Gek2Eng() != "answer" { + t.Errorf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer") + } else { + fmt.Printf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer") + } + + want = Translate{"Aqo"} + if want.Vyk2Eng() != "Foes" { + t.Errorf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes") + } else { + fmt.Printf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes") + } + want = Translate{"Alinichel"} + if want.Kor2Eng() != "Emergency" { + t.Errorf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency") + } else { + fmt.Printf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency") + } + fmt.Printf("\nTesting complete.\nStatus: ") +} diff --git a/nmslib_test.go b/nmslib_test.go deleted file mode 100644 index 01ea5d6..0000000 --- a/nmslib_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package nmslib - -import ( - "fmt" - "testing" -) - -func TestRndPortal(t *testing.T) { - fmt.Printf("\nRandom Portal Code: ") - fmt.Println(RndPortal()) -} - -func TestCreateBanner(t *testing.T) { - fmt.Printf("\nTesting CreateBanner: ") - CreateBanner(RndPortal(), "/tmp/Test.png", 11) - fmt.Printf("Random Portal address rendered as `/tmp/Test.png`\n\n") -} - -func TestPortal2Galactic(t *testing.T) { - want, err := P2gc("006afa556c30") - if err != nil { - panic(err) - } - if want != "042F:0079:0D55:006A" { - t.Errorf("Testing P2gc(\"006afa556c30\"): got %q, want: %q.\n", want, "042F:0079:0D55:006A") - } else { - fmt.Printf("Testing P2gc(\"006afa556c30\"): got: %q, want: %q.\n", want, "042F:0079:0D55:006A") - } - - want, err = P2gc("41EDF9554C2F") - if err != nil { - panic(err) - } - if want != "042E:0078:0D53:01ED" { - t.Errorf("Testing P2gc(\"41EDF9554C2F\"): got %q, want: %q.\n", want, "042E:0078:0D53:01ED") - } else { - fmt.Printf("Testing P2gc(\"41EDF9554C2F\"): got: %q, want: %q.\n", want, "042E:0078:0D53:01ED") - } -} - -func TestGalactic2portal(t *testing.T) { - want, err := Gc2p("042F:0079:0D55:006A", 1) - if err != nil { - panic(err) - } - if want != "106AFA556C30" { - t.Errorf("\nTesting Gc2p(\"042F:0079:0D55:006A\"): got %q, want: %q.\n", want, "106AFA556C30") - } else { - fmt.Printf("\nTesting Gc2p(\"042F:0079:0D55:006A\"): got: %q, want: %q.\n", want, "106AFA556C30") - } - - want, err = Gc2p("042E:0078:0D53:01ED", 4) - if err != nil { - panic(err) - } - if want != "41EDF9554C2F" { - t.Errorf("Testing Gc2p(\"042E:0078:0D53:01ED\"): got %q, want: %q.\n", want, "41EDF9554C2F") - } else { - fmt.Printf("Testing Gc2p(\"042E:0078:0D53:01ED\"): got: %q, want: %q.\n", want, "41EDF9554C2F") - } -} - -func TestTranslate(t *testing.T) { - want := Translate{"Paka"} - if want.Atl2Eng() != "Awake" { - t.Errorf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake") - } else { - fmt.Printf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake") - } - want = Translate{"hofsos"} - if want.Gek2Eng() != "answer" { - t.Errorf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer") - } else { - fmt.Printf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer") - } - - want = Translate{"Aqo"} - if want.Vyk2Eng() != "Foes" { - t.Errorf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes") - } else { - fmt.Printf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes") - } - want = Translate{"Alinichel"} - if want.Kor2Eng() != "Emergency" { - t.Errorf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency") - } else { - fmt.Printf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency") - } - fmt.Printf("\nTesting complete.\nStatus: ") -} diff --git a/rpcg.go b/rpcg.go index c9b5beb..2214a55 100644 --- a/rpcg.go +++ b/rpcg.go @@ -1,11 +1,3 @@ -package nmslib - -import ( - "fmt" - "math/rand" - "time" -) - /* [P][SSS][YY][ZZZ][XXX] – (P = Planet Index / S = Star System Index / Y = Height / Z = Width / X = Length) @@ -23,6 +15,20 @@ import ( */ +package nmslib + +import ( + "fmt" + "math/rand" + "time" +) + +/* +RndPortal - Random Portalcode generator +Requires no input required + Returns a string +*/ + func RndPortal() (final string) { rand.Seed(time.Now().UnixNano()) min := 0x1