예제 #1
0
파일: model.go 프로젝트: Cristofori/kmud
func GetZoneByName(name string) types.Zone {
	for _, id := range db.Find(types.ZoneType, bson.M{"name": utils.FormatName(name)}) {
		return GetZone(id)
	}

	return nil
}
예제 #2
0
파일: model.go 프로젝트: Cristofori/kmud
func GetSpawnerNpcs(spawnerId types.Id) types.NPCList {
	ids := db.Find(types.NpcType, bson.M{"spawnerid": spawnerId})
	npcs := make(types.NPCList, len(ids))
	for i, id := range ids {
		npcs[i] = GetNpc(id)
	}
	return npcs
}
예제 #3
0
파일: model.go 프로젝트: Cristofori/kmud
func GetAreaSpawners(areaId types.Id) types.SpawnerList {
	ids := db.Find(types.SpawnerType, bson.M{"areaid": areaId})
	spawners := make(types.SpawnerList, len(ids))
	for i, id := range ids {
		spawners[i] = GetSpawner(id)
	}
	return spawners
}
예제 #4
0
파일: model.go 프로젝트: Cristofori/kmud
func GetTemplateItems(templateId types.Id) types.ItemList {
	ids := db.Find(types.ItemType, bson.M{"templateid": templateId})
	items := make(types.ItemList, len(ids))
	for i, id := range ids {
		items[i] = db.Retrieve(id, types.ItemType).(types.Item)
	}
	return items
}
예제 #5
0
파일: model.go 프로젝트: Cristofori/kmud
func GetAreaRooms(areaId types.Id) types.RoomList {
	ids := db.Find(types.RoomType, bson.M{"areaid": areaId})
	rooms := make(types.RoomList, len(ids))
	for i, id := range ids {
		rooms[i] = GetRoom(id)
	}
	return rooms

}
예제 #6
0
파일: model.go 프로젝트: Cristofori/kmud
func ItemsIn(containerId types.Id) types.ItemList {
	ids := db.Find(types.ItemType, bson.M{"containerid": containerId})
	items := make(types.ItemList, len(ids))

	for i, id := range ids {
		items[i] = GetItem(id)
	}

	return items
}
예제 #7
0
파일: model.go 프로젝트: Cristofori/kmud
func NpcsIn(roomId types.Id) types.NPCList {
	ids := db.Find(types.NpcType, bson.M{"roomid": roomId})
	npcs := make(types.NPCList, len(ids))

	for i, id := range ids {
		npcs[i] = GetNpc(id)
	}

	return npcs
}
예제 #8
0
파일: model.go 프로젝트: Cristofori/kmud
func GetUserCharacters(userId types.Id) types.PCList {
	ids := db.Find(types.PcType, bson.M{"userid": userId})
	pcs := make(types.PCList, len(ids))

	for i, id := range ids {
		pcs[i] = GetPlayerCharacter(id)
	}

	return pcs
}
예제 #9
0
파일: model.go 프로젝트: Cristofori/kmud
func GetRoomsInZone(zoneId types.Id) types.RoomList {
	zone := GetZone(zoneId)
	ids := db.Find(types.RoomType, bson.M{"zoneid": zone.GetId()})
	rooms := make(types.RoomList, len(ids))

	for i, id := range ids {
		rooms[i] = GetRoom(id)
	}

	return rooms
}
예제 #10
0
파일: model.go 프로젝트: Cristofori/kmud
func PlayerCharactersIn(roomId types.Id, except types.Id) types.PCList {
	ids := db.Find(types.PcType, bson.M{"roomid": roomId})
	var pcs types.PCList

	for _, id := range ids {
		pc := GetPlayerCharacter(id)

		if pc.IsOnline() && id != except {
			pcs = append(pcs, pc)
		}
	}

	return pcs
}
예제 #11
0
파일: model.go 프로젝트: Cristofori/kmud
func CountItemsIn(containerId types.Id) int {
	return len(db.Find(types.ItemType, bson.M{"containerid": containerId}))
}