1
0
Fork 0
mirror of https://github.com/Luzifer/sii.git synced 2024-10-18 05:14:19 +00:00
sii/block_company.go
Knut Ahlers 8b75fde904
Create reference from volatile company to city
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2019-12-24 15:47:35 +01:00

36 lines
1,019 B
Go

package sii
import "strings"
func init() {
RegisterBlock(&Company{})
}
type Company struct {
PermanentData Ptr `sii:"permanent_data"` // external pointer
DelieredTrailer Ptr `sii:"delivered_trailer"`
DeliveredPos []Placement `sii:"delivered_pos"`
JobOffer []Ptr `sii:"job_offer"`
CargoOfferSeeds []int64 `sii:"cargo_offer_seeds"`
Discovered bool `sii:"discovered"`
ReservedTrailerSlot Ptr `sii:"reserved_trailer_slot"` // TODO: Maybe wrong type, haven't seen other than "nil"
blockName string
}
func (Company) Class() string { return "company" }
func (c *Company) Init(class, name string) {
c.blockName = name
}
func (c Company) Name() string { return c.blockName }
func (c Company) CityPtr() *Ptr {
nameParts := strings.Split(c.Name(), ".")
if len(nameParts) != 4 || nameParts[0] != "company" || nameParts[1] != "volatile" {
return nil
}
return &Ptr{Target: strings.Join([]string{"city", nameParts[3]}, ".")}
}