35 lines
716 B
Go
35 lines
716 B
Go
package mapobject
|
|
|
|
import (
|
|
"mapserver/mapblockparser"
|
|
"mapserver/mapobjectdb"
|
|
"strconv"
|
|
)
|
|
|
|
type BonesBlock struct{}
|
|
|
|
func (this *BonesBlock) onMapObject(x, y, z int, block *mapblockparser.MapBlock) *mapobjectdb.MapObject {
|
|
md := block.Metadata.GetMetadata(x, y, z)
|
|
|
|
invMap := block.Metadata.GetInventoryMapAtPos(x, y, z)
|
|
mainInv := invMap["main"]
|
|
|
|
if mainInv == nil {
|
|
return nil
|
|
}
|
|
|
|
o := mapobjectdb.NewMapObject(block.Pos, x, y, z, "bones")
|
|
o.Attributes["time"] = md["time"]
|
|
o.Attributes["owner"] = md["owner"]
|
|
o.Attributes["info"] = md["infotext"]
|
|
|
|
itemCount := 0
|
|
for _, item := range mainInv.Items {
|
|
itemCount += item.Count
|
|
}
|
|
|
|
o.Attributes["item_count"] = strconv.Itoa(itemCount)
|
|
|
|
return o
|
|
}
|