44 lines
886 B
Go
44 lines
886 B
Go
package generator
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
)
|
|
|
|
type PlanetClass string
|
|
|
|
const (
|
|
PlanetClassHW PlanetClass = "HW"
|
|
PlanetClassDW PlanetClass = "DW"
|
|
PlanetClassGiant PlanetClass = "Giant"
|
|
PlanetClassBig PlanetClass = "Big"
|
|
PlanetClassNormal PlanetClass = "Normal"
|
|
PlanetClassRich PlanetClass = "Rich"
|
|
PlanetClassAsterioid PlanetClass = "Asteroid"
|
|
)
|
|
|
|
type Planet struct {
|
|
PlanetClass PlanetClass
|
|
Position Coordinate
|
|
Size float64
|
|
Resources float64 // Сырьё
|
|
}
|
|
|
|
type PlanetarySystem struct {
|
|
HW Planet
|
|
DW []Planet
|
|
}
|
|
|
|
func (p Planet) RandomName() string {
|
|
return fmt.Sprintf("%s-%04d-%04d", p.PlanetClass, rand.Intn(1000), rand.Intn(1000))
|
|
}
|
|
|
|
func NewPlanet(pc PlanetClass, c Coordinate, size, resources float64) Planet {
|
|
return Planet{
|
|
PlanetClass: pc,
|
|
Position: c,
|
|
Size: size,
|
|
Resources: resources,
|
|
}
|
|
}
|