1
0
forked from MTSR/mapserver
mapserver/mapobject/bones.go

45 lines
925 B
Go
Raw Normal View History

2019-01-29 07:47:53 +01:00
package mapobject
import (
"mapserver/mapobjectdb"
2023-12-29 16:00:11 +01:00
"mapserver/types"
2019-12-01 11:35:16 +01:00
"strconv"
2021-10-12 07:44:07 +02:00
"github.com/minetest-go/mapparser"
2019-01-29 07:47:53 +01:00
)
type BonesBlock struct{}
2023-12-29 16:00:11 +01:00
func (this *BonesBlock) onMapObject(mbpos *types.MapBlockCoords, x, y, z int, block *mapparser.MapBlock) *mapobjectdb.MapObject {
2019-01-29 07:47:53 +01:00
md := block.Metadata.GetMetadata(x, y, z)
2019-12-12 22:11:20 +01:00
invMap := block.Metadata.GetInventoryMapAtPos(x, y, z)
mainInv := invMap["main"]
if mainInv == nil {
return nil
}
2021-10-12 07:44:07 +02:00
o := mapobjectdb.NewMapObject(mbpos, x, y, z, "bones")
2019-01-29 07:47:53 +01:00
o.Attributes["time"] = md["time"]
2020-04-13 20:07:56 +02:00
if _, ok := md["owner"]; ok {
o.Attributes["owner"] = md["owner"]
} else if _, ok := md["_owner"]; ok {
o.Attributes["owner"] = md["_owner"]
} else {
o.Attributes["owner"] = "unknown"
}
o.Attributes["info"] = md["infotext"]
2019-01-29 07:47:53 +01:00
2019-12-01 11:35:16 +01:00
itemCount := 0
for _, item := range mainInv.Items {
itemCount += item.Count
}
o.Attributes["item_count"] = strconv.Itoa(itemCount)
2019-01-29 07:47:53 +01:00
return o
}