package mapobject

import (
	"mapserver/coords"
	"mapserver/mapobjectdb"
	"strings"

	"github.com/minetest-go/mapparser"
)

type TravelnetBlock struct{}

func (tn *TravelnetBlock) onMapObject(mbpos *coords.MapBlockCoords, x, y, z int, block *mapparser.MapBlock) *mapobjectdb.MapObject {
	md := block.Metadata.GetMetadata(x, y, z)

	// ignore (P) prefixed stations
	// TODO: configurable prefix
	if strings.HasPrefix(md["station_name"], "(P)") {
		return nil
	}

	o := mapobjectdb.NewMapObject(mbpos, x, y, z, "travelnet")
	o.Attributes["owner"] = md["owner"]
	o.Attributes["station_name"] = md["station_name"]
	o.Attributes["station_network"] = md["station_network"]
	o.Attributes["nodename"] = block.GetNodeName(x, y, z)

	return o
}